Skip to main content

Full text of "Oh!X 1991 02"

See other formats


1991 年 2 月 1 日発行(毎月1回1 H 発行)第10卷2号通巻106号昭和58年11月2 .日第三種郵便物認可 



圍 


オー/エツクス 

定価560円 


特集1クラフィックの“実験的”手法 

特集2 SX-WINDOW ブログラミング 
1990年度 GAME OF THE YEAR ノミネート発表 

カードゲームスロットポーカー 



1331 







SHARP 


X 68000 SUPER 登場 

このたび新たにラインアップされた “ X 68000 
SUPER ” は、すでに発売されて L 、る“ SUPER 
SCSI インターフェイスを標雄4 
装備しています。また、その他のシリーズには 
オフ。シ ヨンと して SCSI ボ、ード ( CZ -6 BS 1) 
がサポートされ、大容量外部記憶装置を 
はじめ、各種 SCSI 装置との接続が"丁能に 
なったのは、ご存じのとぉりです。 

SCSI 規格とは…… 

SCSI は1986年に ANSI (米国規格協会) 
で規格化された仕様で 、 Small Computer 
System Interface の略。小型コンピュータ 


X 68000 と大容量メデ f ァ 

サウンドクリエーション&コンピュータグラ 
フィックス。 X 68000 のオハコともいうべきこの 
領域は、感性あふれるューザー(ことって最 
も魅力的である反面、表現の繊細さに比例 
して必要な外部記憶容量も増大します。サン 
プリング、 MIDI 、 レイトレ……。その潜在能 
力をフルに引き出すには、大容量メデ3ア 
への対応が必須です。たとえば、新発売の 
光磁気デ V スク ( CZ -6 M 01) と光磁気デ'ィ 
スクカートリッジ ( JY -701 MPA ) なら、デ^ス 
ク1枚で65,536色画像にして1,000枚強、 
15 . 6 k H z の音声サンプリングデータで約 
20時間強もの情報を記憶できます。絵に書 



▲ M 0 デ f スクドライブ情報 


▲ MO ドライブディレクトリ til 報 


▲ MO ディスクのフォーマット 


の周辺機器接続のための世界共通の规格 
です。大容量外部記憶装置(大容量ハード 
ディスク、 CD - ROM 、 DAT など)に加え、登 
場が期侍される高速スキャナ、次世比プリ 
ンタなどの SCSI 装置を、デイジーチェーン 
方式で最大7台まで接続可能。大容量デー 
夕の高速転送、および単一のインターフェイ 
スでの周辺機器の複数制御が特長です。 


癱デイジーチヱーン方式による接続例 


SCSIO SCSI 1 
( ID 番号 0) ( ID 番号 U 


SCSI n -1 
(ID 番号 n - l > 


y! 終瑞抵 


scs 


終端抵抗 

J 


終繡抵抗 
大 7 台 i で 


SCSI ポード CZ -6 BSI 


X 68000 シリーズ 
( CZ -604 C /623 C を除く) 


コンピュータ本体後面 
I 0スロットに装溜 


SCSI ボード CZ -6 BS 1_ 

掠準価格29,800円(税別) 





いた餅とされていた「画像データベース」 
も、「サンフ。リングシステム」さえも、もう火川レ 
ベル。 SCSI の採用が、夢の大容 M メデ f ア 
に応えてくれるからです。 

X 68000 の先見性 

初代 X 68000 は、すでにハードデ f スクイン 
ターフェイスを内蔵していたこと。当時まだ 
一般的ではなかったハードデ f スクに対し 
て先見の発想で臨んで L 、たわけです。今 M 
の SCSI 対応も同様、100 MB を超える大容 
量メデ f アハンドリングカすスタンダード(こなる n 
も、そう遠くはありません。 

大容量ハードテ^スクか? 
光磁気テ^スクか?それとも . 

考えもしなかった新しいデバイスか。新製品 
X 68000 SUPER の SCSI インターフェイス 
に何を接続するかは、賢明なユーザー諸 
兄にお任せする!:して…。このマシンカ ? また新 
たな一歩を踏み出したことに異論はないは 
ずです。蛇足ながらこの SUPER シリーズに 
関し a 、 わせてもらえれば、その1=1から大容量 
ハンドリングをお望みの方には SUPER HD 
を。未来に夢を託したユーザーは SUPER 、 
といったところでしようか。 

♦ SCSI 装 IK をご使用の場合は. Human 68 k Ver 2.0 以 I •.でご使用 
〈ださい。 

* ビジュアルシェル I .か t •,は scsi 装 is はご使肋二な n ませ/し 


シャープ X 68000 ノぐノコン教室開催中 

•会場:市ヶ谷教室シャープ東京支社ビル 
•コース:入門コース•表集計コース•音楽 
コース •絵画 コース 

* 申込受付電話番号 (03)3260-8365 
籲受講料:2.000円(税別) 


68買ったら 

ド EXE1 : 

へ クラブ ^ 


に人ろう/ 


本体同梱の人会申込ハガキを送るだけで、無料人会。 
@ メリット1 :会 MNo. 人り、オリジナル 会員証電卓が もらえる0 
©メリット 2 :矜柿フェアこ 1#诗,イベントご案内等、数々の特典アリ。 
@ メリット3 : l()m FJ スタート/ X68000 の活用惝報が手に入る 
「EXE おみこし活動 」に参加できる.グ 


ステップアップサービス(有料) 
「おみこしかつぎ人」 制度も新設 

EXE おみこし活動のお問い合わせは、 

X 68000 t:XE クラブ「おみこし活则隊 _ i まで 

0(06)886-0354 


■ ——詳細は X 68000 販売店店頭で'— 

. おみこし Press をご駑下さい。 



































敢えて X 68000 の大容量メデ<ア対応を 


塞証す i 

意味。 




カラー画像ファイル、サンプリングファイルへ0 
X 680 Q 0 のクリエイテイブユースに待望の大容量ファイル0 
書き換え可能な光磁気ディスク、登場。 






光磁気ディスクユニット 

CZ -6 M 01 •••標準価格450,000円(税別) 

光磁気デイスクカートリッジ 

JY -701 MPA …標準価格30,000円(税別) 


写真の X 68000 とディスプレイは別売です。 




SX - WINDOW s SCSI インターフ I イス標準装備0 

XI B 8000 

PERSONAL WORKSTATION 

SUPER 


XIBBOOO 

PERSONAL WORKSTATION 

SUPER 

本体 + キーボード + マウス•トラックポール 
CZ - 6040 TN (チタンブチノク) 標準価格348,000円(税別) 

HD タイプ CZ -623 C - TN (チタンブラック)標準価格498,000円(税別) 

本体ゥス 参 ••龜 

CZ -653 C - BK ( ブラック )• - GY (グレー)標準価侪285,000円 ( 税別) 

HD タイプ CZ -663 C - BK (ブラック) 一 GY (グレー)標準価格395,00 0 R (税別) 



充実の 
デ^スプレイラインアップ 

DISPLAY LINE UP 


H 5型カラーディスプレイテレビ(ドットビッチ 0.39 mm ) CZ -602 D - BK (ブラック) .- GY (グレー)標準価格99.800円(チルトスタンド同梱.税別) 

H 5 型カラーディスプレイテレビ(ドットビッチ0.39_) CZ -605 D - BK (ブラック) .- GY (グレー)標準価格115,000円(スピーカ ー2 個/チルトスタンド同梱.税別) 

115型カラーデイスプレイテレビ(ドットビッチ0.31關) CZ -613 D - TN (チタンブラック) .- BK (ブラック) .- GY (グレー)檷準価格135,000円(スピーカー2個/チルトスタント•同梱.税別) 


>14型カラーディスプレイ(ドットビッチ 0.31 mm ) 
► 14型カラーディスプレイ(ドットビッチ 0.31 關) 
• 14型カラーディスブレイ(ドットビッチ0.31晒) 
• 21型カラーデイスプレイ ( ドットピッチ0.52麵) 


CZ -603 D - BK (ブラック) .- GY (グレー)標準価格84.800円(チルトスタンド同梱•税別) 

CZ -604 D - BK (ブラック) 一 GY (グレー)標準価格94.800円(スピーカ ー2 個/チルトスタンド同梱.税別) 

CZ -606 D - TN (チタンブラック) -- BK (ブラック) -- GY (グレー) 標準価格79.800円(チルトスタンド同描•税別) X 2 S 7 
CU -21 HD-BK (ブラック) 檷準価格148,000円(スピーカ ー2 個同插•税別) 

※印の商品は在庫僅少です。 


X68000 

自分流カード 
デザインコンペ 

作品大募集 


く応募要領〉籲応募方法/ X 68000 で作成したポストカードサイズのデザインカードを送って下さい。 (ソフト 
は自由)•作品分類/部門 A :クリスマスカード、ニューイヤーカード部門 B : バレンタインカード、 バース デ 
ィカード部門 C : 暑中見舞力ード、サークル•趣味の会お知らせカード•賞/ A * B * C 各部門毎に優秀作品 
を選考、オリジナルカレンダーに掲載してプレゼントします。※優秀作品賞:掲載作品応募者に、カレンダ 
一及びオリジナル表彰楯を進呈。※参加 賞: 応募者全員に、カレンダーを進呈。 (応募 作品に関わる諸 

権利は主催者に帰属するものとして作品の返去:]はいたしません)「詳細は X 68000 販売店 店頭で、-1 

•応募期間/ 1990年10月1日 一 1991年2月28日 (消印有効) 1 - チラシ.ポスターを ご览 下さい。」 


書お問い合わせは… 

株式会《 

電子拽器事業本部システム機器営楽部 

〒545大阪市阿倍野区長池町22番22号 O (06)62 M 22】 (大代表) 

锴子機器事業本部液晶映像システム事業部第2商品企画部 

〒162東京都新宿区市谷八幡町8番地〇 (03) 3260-1161 ( 大代表: 



























特集丨グラフィックの“実験的"手法 



H3J) HOLII 



スロッ トポ ー カ ー 



THE USER'S WORKS 



ブール.オブ • レイデイアンス 



エメラルドドラゴン 



/J/i/aY 

CON. 


c 

0 N 

T 

• 特集 1 

30 

グラフィックの“実験的”手法 

33 

初心者のためのグラフィックあれこれ 

CG の基礎 

丹明彦 

36 

CANVAS PRO-68K 

ドロー系グラフィックツールの魅力 

丹明彦 

42 

ZsTRIPHONY DIGITAL CRAFT データ集 

ポリゴンデータ 「3 D 倶楽部」 

丹明彦 

43 

解説レポート 

Z’sSTAFF 支援ツール Z ’ s-EX 

丹明彦 

50 

レイトレーシングにおいて半影を生成する 

HASH . X 

一圆亨 

56 

製品試用レポート 

hine Scanner - XB 8 

高 橋哲史 

•特集 E 

99 

SX-WINDOW プログラミング 


100 

ウィンドウプログラミングへの道 (E) 

C 言語によるプログラミング 

村田敏幸 

106 

コラム目玉を小さくするプログラム!? 

泉大介 

107 

c 言語で使5グラフマネージャの基礎 

GRAPHMAN を使ってみよう 

泉大介 

116 

SX し IFE Part II 

ポップアップメニューの追加 

中森 章 

120 

コラム 「 SX エンターテイメントキット」計画 

荻窪圭 

•カラー紹介 

25 

THE USER'S WORKS 
ガイアの牙 


26 

THE SOFTOUCH SPECIAL 

1990年度 GAME OF THE YEA 闩 ノミネート作品発表 


•シリーズ全機種共通システム 

137 

THE SENTINEL 


138 

ダイスゲーム KISMET 

榊卓也 


<スタッフ〉 

•編集長/前田徹•副編集長/植木章夫•編集/岡崎栄子浅井研二參協力/有田隆也中森章 
後藤貴行林一樹荻窪圭岡本浩一郎毛内俊行吉田賢司影山裕昭相馬英智古村聡村田 
敏幸丹明彦 E 沢和彦長沢淳博宮 A 靖金子俊一浦川博之山田純二•カメラ/杉山和美 
•イラスト/永沢しげる山田晴久小栗由香參アートディレクター/島村勝頼•レイアウト/元木昌子 
AD GREEN #校正/グループごじら 


Fine Scanner-X68 














































表紙絵:須藤 



ENTS 

•THE SOFTOUCH 

81 

SOFTWARE INFORMATION 
話題のソフトウェア 


84 

86 

昍 

90 

92 

GAME REVIEW 

栄冠は君に 

KLAX 

ダイナマイト•デューク 

エメラルドドラゴン 

プール•オブ • レイデイアンス 

彩山裕昭 

山田純二 
西川善司 
古村聡 
亀 田雅彦 

94 

AFTER REVIEW 

ラグーン 


読みもの 

153 

X - OVE 闩 NIGHT 第 9 話 

街の空気 

高橋秀己 

154 

第45回知能機械概論——お茶目な計算機たち—— 

感涙もののマシン語プログラム 

有田隆也 

156 

猫とコンピュータ第56回 

楽しめる RPG ギフト 

高沢恭子 

• 連載 / 紹介 / 講座 / ブ□グラム 

58 

シミュレーションプログラミング入門第3回 

シミュレーションは未来をひらく 

華門真人 

64 

よろこそここへ C 言語[第 4 回] 

配列って何だろう(その n 

中森 章 

69 

X 68000 マシン語プログラミング Chapter 14h 

ソーティングプログラム(前編) 

村田敏幸 

77 

OhIX LIVE in ,91 

Misty Blue よりオープニングテーマ曲 (XB 800 0) 

スプーンおばさんよりリンゴの森の子猫たち (XI /turbo) 

立川正之 

加藤隆 

9B 

大人のための X 68000 第5回 

FIXER ver.4.D 

荻窪圭 

121 

X 68000 CA 闩 DDR V 用カードゲーム 

スロットポーカー 

羽生純也 

124 

Xlturbo 用ディスク管理プログラム INTEGRAL XI 

バグレポートとファイル関数 

亀 田雅彦 

130 

マシン語カクテル in Z 80 *s Bar 第18回 

乱数は世界を救うか 

西川善司 

143 

八ードウェアエ作入門〈日〉 

センサー回路その2 

三沢和彦 

146 

(で)のショートブロば一ていその17 

行け行けユーティリティ 

古村聡 


愛読者プレゼント……152 
ベンギン情報コーナー……158 

FILES OhIX ……160 

OhIX 質問箱……162 

STUDIO X ……164 

編集室から /DRIVE ON / ごめんなさいのコーナー / SHIFT BREAK / microOdyssey … 

…168 


1991 



UNIX(iAT&T BELL LABORATORIES の OS 名です。 
Mach はカーネギーメロン大字の 0S 名です。 

CP/M, P-CPM, CP/Mplus. CP/M-86. CP/M-68K, CP/M- 
8000, DR-DOS は DIGITAL RESEARCH 
OS/2 は IBM 

MS-DOS, MS-OS/2, XENIX, MACRO80. MS C は MICRO 
SOFT 

MSX-DOS はアスキー 

OS-9. OS-9/68000, OS: 900 0, MW C は MICROWARE 

UCSD p-system はカリフォルニア大字理事会 

WordStar, WordMaster は WORDSTAR International 

TURBO PASCAL, TURBO C. SIDEKICK は BOLAND INTER 

NATIONAL 

LSI C は LSI JAPAN 

HuBASIC はハドソンソフト 

の商標です。その他,プ□グラム名, CPU は一般に各 
メーカーの登 i 幸商標です。本文中では“ TM ", " R "マー 
クは明記していません。 

本1$に揭載されたプ〇グラムの著作播はプ D グラム 
作成者に保留されています。著作権上. PDS と明記さ 
れた6の以外,個人で使用するほかの無断複製は禁 
じられています。 


■広告目次 

アイテム . 24 

アイビット電子 . 180.181 

アクセス . 184 

AVC フタバ電機 . 176 

エ厶 エーシー ハミングバードソフト|〇 
才ーェーランド . 20 


キャスト . 9 

計測技研 . 178.179 

エ画堂スタジオ . II 

サイバー . 183(上) 

J&P . 表3 

システムサコム . 12-13 

シャープ . 表2•表4小4-8 

駿河台電算専門学校 . 183 (下) 

ソフトクリエイト . 182 

九十九電機 . 21 

デンキヤ . 177 

日本コンピュータシステム . 14.15 

パソコンプラザオクト . 18.19 


P&A .16-17 

ビクター 音楽産業 . 23 

ブルー スカイ . 175 

満開製作所 . 174 

ワールドインアオヤマ . 22 























































SHARP 


システムパフオーマンスを実証する多彩なペリフェラル。 



ディスプレイ関連 


アートツール 


プリンタ 


カラ-ディスプレイテレビ 


カラーディスプレイ 


画像入力 


熱転写カラープリンタ 


Q ■够忌墨 

赖态?踅士弓一•:®茔プ I 丨 ゞ 々 



15型カラーディスプレイテレビ 

CZ -602 D-BK 
★ CZ -602 D-GY 
標準価格99,800円(税別) 
(チルトスタンド同梱) 


14型カラーデイスブレイ 

CZ -606 D - TN - BK-GY 
標準価格79,800円(税別) 

(チルトスタンド同梱) 



15型カラーデ< スプレイテレビ 

CZ-605D- BK--GY 


標準価格115,000円(税別〉 
(スピーカー2個•チルトスタンド同梱) 


14 型カラーディスプレイ 

CZ -604 D - BK-GY 

摞準価格94,800円(税別) 
(スピーカー2個.チルトスタンド同描) 


■> T — か 


15型カラーデイスブレイテレビ 

CZ-613D-TN.-BK.-GY 
標準価格135,000円(税別) 
(スピーカー2個.チルトスタンド同梱) 


21型カラーディスプレイ 

CU-21HD 

標準価格148,000円(税別) 
(スピーカ ー2 i 固同梱) 


チューナー 


CRT フィルター 


1 : 


高性能 CRT フィルター 

BF-68PRO 

標準価格19,800円(税別) 
(14/15 型用) 


RGB システムチューナー 

CZ-6TU-BK-GY 

摞準価格33,100円(税別) 

(リモコン付') 


カラーイメージスキヤナ* 1 

CZ-8NS1 

摞準価格188,000円(税別) 



スキャナ用パラレルポード 

CZ-6BN1 

標準価格29,800円(税別) 


映像入力 


カラーイメージユニット • 2 

CZ -6 VT 1 -BK 

CZ -6 VT 1 

標準価格69,800円(税別) 


映像出力 


0 


m 


ビデオポード* 

CZ -6 BV 1 

標準価格21,000円 (税別) 


48ドット 
熱転写カラー漢字プリンタ 

★ CZ -8 PC 4 
CZ -8 PC 4 -GY 
摞準価格99,800円(税別) 
(信号ケーブル同桶) 


24 ビン 

カラー漢字プリンタ (80 析) 

CZ -8 PG 1 

If 準 価格130,000円(税別) 
(信号ケーブル同梱) 




48 ドット 

熱転写カラー漢字プリンタ 

CZ-8PC5-BK 

2月発売予定 


24ビン 

カラー漢字プリンタ(136桁) 

CZ -8 PG 2 

擇準価格160,000円(税別) 
(信号ケーブル同梱) 


カラー ビデオプリンタ 


^~ Lj 


ドットプリンタ 


カラービデオブリンタ 

★CZ-6PV1 

標準価格198,000円(税別) 
(信号ケーブル同梱) 




カラーイメージジェット 


24ビン漢字プリンタ (136 析) 

CZ-8PK10 

摞準価格97,800円(税別) 
(信号ケーブル同梱) 


JT 呵卯 S 


カラーイメージジェット+‘1 

10735X 

標準価格248,000円(税別) 
(信号ケーブル別売) 


光磁気ディスクユニット” 
(594 MB ) 

CZ-6M01 

楝準価格450,000円(税別) 

(SCSI ケーブル同梱) 

»光磁気ディスクカートリッジ 
は別売です n 別売の JY -701 
MPA 棵準価格30.000円 
(税別)をご使用ください 


ハードディスク 



ハードテ V スクユこット (20 MB ) 

CZ-620H 

樺準価格178.000円(税別 


、ノノ 


增設用ハードデ< スク 

ドライブ (40 MB ) 
( CZ -602 C /603 C /652 C - 
653 C 内蔵用) 

CZ-64H* 

摞準価格120,000円(税別) 
(取付費別) 
增設用ハードディスク 

ドライブ (80 MB )( CZ *604 C 内 用 

CZ-68H* 

標準価格160,000円(税別) 
糸取付に関してはシャープ 
お客様ご相談窓口にてご 
相談ください。 


*1 ご14■用に際しては、カラーイメージスキャナ 0Z"8NS1 に间梱の RS-232G ケーブルでほするか.より*速のバラレルデータ伝送を行う壜合、別売のスキャナ用バラレルポー KCZ*6 日N1橡单価格29.800円(税別)で接时して <ださい v 
*2 CZ-603D 604D.CU-21HD をこ使用の塌合は、 ROB システムチューナー CZ"6TIJ (別売)が必耍です„ m 3 ビデオ出力は15.75 kHz テレビ棵準信号です。また.拡張1'0スロットは2スロット使用します。 

*4 別売の m 号ケーブル IO-73CX 撺準価格5.500円(税別)で接統して下さい。 *5 CZ"600C、601C、 602 O、603C、61 10、6120、6彳30、6520、6530、662〇、6630に使用の場合は、別売の3〇51ポード(02モ831)が必要です.(但し、02*623(3は不要 
また. X68000 用 OS Human68K ver.2.0 以上にてご使用ください,,(光磁51ディスクカートリッジは別売の JY-701MPA 標準価格30.000円(税別)をご使用ください。) *6 こ•使用に探しては、あらかじめ別売の 1MB 檐投 RAM ボード CZ*6BE 1 懞準価格 


ジりーズ用 

周辺機器 


標準価格は税別です。 


カラー デイスプレイ 

籲2〗型カラーディスプレイ* 1 

CU -21 HD 

148.000円 


映像•画像入力編集装置 

♦カラーイメージスキャナ 

CZ -8 NS 1 

188,000円 

♦カラーイメージボード II 

CZ -8 BV 2 

39,800円 


籲立体映像セット 

★ CZ -8 BR 1 

29.800円 

•バーソナルテロツバ* 2 

★ CZ -8 DT 2 

44.800円 


FM 音源 

• ステレオタイプ FM 音源ボード 

CZ -8 BS 1 

23.800円 

スビーカー (2 本1組) 標準装備、ミュー 

■ ジック ツール同梱 


プリンタ 

• 24 ピンカラー漢字プリンタ (80 桁) 

CZ -8 PG 1 

130.000円 

• 2化•ンカラー漢字プリンタ ( 136析) 

CZ -8 PG 2 

160.000円 


• 24 ピン漢字プリンタ (136 桁) 

CZ -8 PK 10 97.800円 

• 48 ドット熱転写カラー漢字プリンタ 

★ CZ -8 PC 4 99.800円 

籲48ドット熱転写カラー漢字プリンタ 

CZ -8 PC 4 -GY 99.800円 

參48ドット熱転写カラ-漢字プリ乃 

CZ -8 PC 5 -BK 2月発売予定 

籲 カラー ビデオプリンタ 

★ CZ -6 PV 1 198.000円 

參 カラーイメージジェット 

10.735 X 248.000円 


ファイル 

• ミニフロッピ-ディスクユニット (2 HD .2 D )* 3 ★ CZ -520 F 118.000円 


v/^-7/oVik^n 


•お問い合わせは…シャープ ㈱ 電子機器事業本部 システム 機器営業部〒 545 大阪市阿倍野区長池町 22 番 22 号 0(06)621-1221 ( 大〇 
















































シャープペリフエラルフアミリー 

XI68000 



ネットワーク 


入力 


その他 


拡張メモリ 



1 MB 增設 RAM ポード 
( CZ - MOC 専用) 

CZ-6BE1 

摞準価格35,000円(税別) 



1 MB 增設 RAM ボード 
( CZ -601 C /611 C /652 C / 
653 C /662 C /663 C 用) 

CZ-6BE1B 

棵準価格28,000円(税別) 



2 MB 增設 RAM ポード + 6 

CZ-6BE2 

楝準価格79,800円(税別) 



4 MB 增設 RAM ポード* 6 

CZ-6BE4 

標準価格138,000円(税別) 


インターフェイス 



ユニバーサル I / O ポード 

CZ-6BU1 

橾革価格39,800円(税別) 


, mm'rwa* 

|3〇{— 

mu-iu. 

GP - 旧ボード 

CZ-6BG1 

標準価格59,800円(税別) 



增設用 RS -232 C ポード 
(2 チヤンネル) 

CZ-6BF1 

標準価格49,800円(税別) 



0 


SCSI ポード“ 

CZ-6BS1 

標準価格29,800円(税別) 
(ソフトウェア ( SCSI ユーティリティ)同描) 


数値演算プロセッサ 



数値演算プロセッサボード 

CZ-6BP1 

標準価格79,800円(税別) 


FAX 



FAX ボード 

CZ-6BC1 

標準価格79,800円(税別) 


MIDI 



MIDI ボード 

CZ-6BM1 

標準価格26,800円(税別) 


モデム 



モデムユニット* 8 

CZ-8TM2 

棵準価格49,800円(税別) 
( RS -232 C ケーブル同梱) 


RS -232 C ケーブル 


RS -232 C ケーブル 
(平行接続型) 

CZ-8LM1 

標準価格7,200円(税別) 



RS -232 C ケーブル 
(クロス接続型) 

CZ-8LM2 

標準価格7,200円(税別) 
し AN ボード 



LAN ボード 

CZ-6BL1 

標準価格268,000円(税別) 



標準価格298,000円(税別) 

(イーサネット/チーパネット両用) 
※電源ユニット.ソフトウェア 
(ネットワークドライバ Verl.O) 同梱 



インテリジェントコント□ーラ 

CZ-8NJ2 

標準価格23,800円(税別) 


マウス•トラック ポール 

CZ-8NM3 

摞準価格9,800円(税別) 



トラックポール 

CZ-8NT1 

棵準価格13,800円(税別) 


マウス 

CZ-8NM2A 

標準価格6,800円(税別) 



ジョイカード 

CZ-8NJ1 

棵準価格1,700円(税別) 


拡張スロット 



拡張 I / O ボックス (4 スロット) 
(CZ-600C/601C/602C/603C/ 
511G/612C/613C/623C 用) 

CZ-6EB1-BK 

CZ-6EB1 

棵準価格88,000円(税別) 


ス匕一力一 



アンプ内蔵 

スピーカー システム (2 本1組) 

AN-S100 

標準価格36,600円(税別) 


システムラック 



システムラック 

(CZ-600C/601C/602G/603C/ 
6110 612 CV613C/623C 用) 

CZ-6SD1 

摞準価格44,800円(税別) 


35.000円 (税別 •CZ"600G 用)、 CZ 七 BE1B 檬準価格28.000円 (税別 ♦CZ"601C、CZ>6〗〗C、652C、653C、662C、 6630 用) を增肢してください,. *7 02七000、6010、6020、6030、6110、6120、6130に装着の場合、1/0スロット2に装着ください。 
CZ^652C.653C、662C、663C に装着の場合は1/0スロット4に装着ください,,また、 CZ>6BG1、6 日1)1、6日し1、6日し2、6日叫などのボードは、接統コネクタとの間係で本ボードとの併用はできませんのでご注意ください,.なお.本ボードは X68000 用 OSHuman 
68K ver.2.0 以上にてご使用ください,, *8 モデムユニット CZ^8TM2 に同梱のソフトは X1/X1 ターボシリーズ用です 


•ミニフロッピ-ディスクユニット (2 D ) * CZ -502 F 99,800円 


• ミニフロッピ-ディスクユニット (2 D . 1ドライブ) CZ -503 F 

49,800円 

•增設用ミニフロッピ-ディス外ライブ (2 D )* 4 CZ -53 F - BK 19,800円 


拡張ボ ー ド•その他 

♦モデムユニット (300/1200 ポー) 

CZ -8 TM 2 

49,800円 

• 320 KB 外部メモリ 

CZ -8 BE 2 

29,800円 

• RS -232 C •マウスポード※ 5 

CZ -8 BM 2 

19,800円 

籲フ□ツビー fV スクインターフェイス※6 

CZ -8 BF 1 

14,800円 


鲁 JIS 第1水準漢字 ROM ※フ 

CZ -8 BK 2 

19,800円 

• RS -232 C 用ケーブル(平行接続型) 

CZ -8 し M 1 

7,200円 

• RS -232 C 用ケーブル(ク□ス接続型) 

CZ -8 し M 2 

7,200円 

籲抵張 I/O ボックス 

CZ -8 EB 3 

33,800円 

• RF コン/く一夕※8 

AN -58 C 

2,980円 

參インテリジェントコントローラ 

CZ -8 NJ 2 

23,800円 

參マウス•トラックボール 

CZ -8 NM 3 

9,800円 

•マウス 

CZ -8 NM 2 A 

6,800円 

• トラックホール 

CZ -8 NT 1 

13,800円 


參ジョイカード 

CZ -8 NJ 1 

1,700円 

翁チルトスタンド 

CZ -6 ST 1- E-B 

5,800円 

•高'性能 CRT フィルター※9 

BF -68 PRO 

19,800円 

•スキャナ用バラレルポード※ 10 CZ -8 BN 1 

27,800円 


•品番中の-表示は、 B くブラック〉モくオフィスグレー〉を示します。※1 
XI ターボ Z シリーズ用 *2 CZ -862 C には接続できません余3 XI 夕 
—ポシリーズ用 《4 CZ -830 C 用 XI シリーズ用 *6 CZ -850 C 
で CZ -520 F を使用する場合に必要※7 CZ -800 C 、801 C 、802 C 、 
803 C 、811 C 、820 C 用 CZ -820 C 、822 C 、830 C 用※9 14/15型用 

* 10 GZ -8 NS 1 用•接続等の説明につきまじ T は、周辺機器紡合 
カタログをご参照ください。 

★印の商品は在庫僅少です。 


機器事業本部液晶映像システム事業部第2商品企画部〒162東京都新宿区市谷八幡町8番地 0(03)3260-1161 ( 大代表) 






















































SHARP 

八イアビリテイを実証する多彩なソフトウェア。 


ドロー編集、 WYSIWYG 印刷、 


バージョンアップされた C コン^イラ 

こんな C . G •ツールが欲しかった。 


と、強力な BAST 0 C チェッカー。 



本格的なロゴタイプや POP を簡単に作成できるグラフィックツー 
ルです。優先順位が任意に指定できるドローセル、ペイントセル、 
テキストセルの3つの仮想セルで、目的にあった自由なグラフイツ 
クが駆使できます。また印刷は、画面イメージがそのまま印刷イメ 
ージとなる WYSIWYG (What You 
See Is What You Get ) を実現 0 
A 6/ A 5/ A 4/ A 3./ B 6/ B 5/ B 4/ 葉書 
サイズで 8 色カラー印字できます。 


く ドロ ー セル〉 ベジエ曲線によって少ないデー 
夕量でも複雑な絵を描くことができます。エンべ 
ロープ変形を始めとした豊富な編集機能を持っており、拡大、縮小じ r も絵の美しさ 
は変わりません。またテキストセルで作成したベクトルフォントデータを自由に変形し、 
オリジナルロゴタイプや pop を作成できます。 

く ペイントセル〉 ペンやエアーブラシ、ペンキなどを使って、ピクセルで構成されたビ 
ットマップ図形を描くことができます。また 、 「NEW PrintShop PRO ^ Kj や 「 X - BASIQj 、 
r Z's STAFF PRO ~68 K 」 のデータ取り込みやイメージスキャナによる取り込みをサ 
ポートしています。 

く テキストセル〉 通常の文字入力機能に加え、ベースライン変形などの多彩な編 
集機能によって自由に文字の加工ができます。また英数文字のベクトルフォントを標 
準装備。さらに 「 Z's STAFF PRO -68 K Ver 2.0」、 「書体倶楽部」の日本語べクト 
ルフォントが利用可能。また、内蔵の漢字 ROM フォントも自動的にベクトルフォントデ 
一夕に変換しますので、簡単に日本語ロゴタイプを作成することができ rr 。 

* r Z's STAFF PRO 七 8 K 」、 「害体倶楽部」は、 ㈱ Zeit の製品です 
※本ソフトの動作には、メインメモリ 2 MB が必要です. 


CANVASI 


PRO -60 K 


CZ -249 GS 

標準価格29,800円(税別) 


•主とじ C イ固人用のさまざまなジャンル 
のデータが収められているドロー グラフ 
ィックデータ集です。 

海のデータ/動物のデータ/スポーツのデータ/ 
鳥のデータ/人物のデータ/食物のデータ/昆 
虫のデータ 

CANVAS ESE3 

ド CH 7 ラフィックライフラリ V 0 L .1 

CZ -255 GS 標準価格8,800円(税別) 



參主としてビジネス用のさまざまなジャ 
ンルのデータが収められている ドロー 
グラフィックデータ集です。 

0 A 関係のデータ/飾りのデータ/コンピュータ 
関係のデータ/ POP のデータ/国旗のデータ/ 
字体のデータ/地図のデータ/乗り物のデータ 

CANVAS EM 

ドロ-クラフィックライフラリ V 0 L .2 

CZ -256 GS 標準価格8,800円(税別) 


ソースコードデバッガをはじめ、各種開発ッールを 
強化0バージョンアップされた(デコンパイラ。 

〇のソースレベルでデバッグできる「ソースコードデバッガ」を搭載し 
たほか、各種開発ッールを強化した総合開発ッールです。また、ライ 
ブラリは Human68k ver2.0 の披張 DOS コールもサボートしている 
など、より X68000 のハードウエアを活かせる豊富なライブラリ (830 種 
以上)となっています。 C 言語の標準である ANSI 規格準拠をさらに 
強化。「プログラム保守 ユーティリティ (MAKE) j や「ライブラリアン」 
など各種ッールを追加しました。その他 「BASIC -〇コンパータ」、「ア 
センブラ」、「リンカ」、「デバッガ」、 

「ソースコードデバッガ」、 「アー カイ 
ノく 」、「コンバータ」、 などの ツール 

が装備されています:^ 

*C compiler PRO -68 K ( GZ -211 LS ) を既に 
お持ちの方は、登録カードをもとに有償バー 
ジョンアップを行います„ 

※本ソフトの動作にはメインメモリ 2 MB が必要 
です0 



^mniGRi 


=ver2.0= 


PRO-60K 


CZ -245 LS 

標準価格44,800円(税別) 


トラブルエラーの悩み解消! 

「 XBAStoC 」 の強カツールの登場です 0 

X-BASIC プログラムのコンパイル時、発見しづらいトラブルエラーに 
悩まされていたプログラムの問題点をひとつひとつ指摘。エラーとな 
る直接原因だけでなく、注意項目も指摘します。これにより、 X-BASIC 
では実行できたのにコンパイルするとエラーが発生する、といったプ 
ログラムの修正が簡単にできます。 

參指摘したトラブルの結果を、画面やプリ 
ンタなどの外部デバイスに簡単に出力で 
きます,•エラーラインとエラーレポート、2つ 
のエラーファイルを自動的に生成。春グラ 
フィカルな画面による簡単操作。*コマン 
ドラインからダイレクトに操作を指定。バッ 
チファイルに組み込むなどの修正作業の 
自動化が可能。 • GP- 旧ボード (CZ 七 BG 
1) とユニバーサル I/O ポード ( GZ-6 日 U1) 

付属の拡張外部関数もコンパイル可能, 



* X - BASIC プログラムをコンパイルするためには、別売の 「G compiler PRO -68 Kj ( CZ -21 1 
LS ) または 「C compiler PRO -68 K ver 2.0 j ( GZ -245 LS ) が必要です。 



XBAStoC CHECKER 

CZ -260 LS 標準価格9,800円(税別) 


PRO-60K 




一^^;");黍 : 1 

__ -^^^^ ^^ _ I 


淡 fr-y 。 株 it 会 《 •お問い合わせは….シャープ ㈱ 電子機器事業本部液晶映像システム事業部第 2 商品企画部〒162東京都新宿区市谷八幡町8番地 0(03)3260-1161 (大代表) へ.. 


施、、 


ダ 












































お望みのワークベンチへ。 




Hyperword 


■ CZ -251 BS 標単価格39.800円(税別) 


CYBERNOTE 


■ CZ -243 BS 播準価格19.800円(税別) 


Stationery 


■ CZ -240 BS 標準価格14.800円(税別) 


X 68000 の優れたグラフィック環境を活 
用し効率的に文害を作成するための 
インテリジェントワープロです。アイデア 
プロセッサ櫬能、ハイパーテキスト機能 
などをサボート,データの整理やプレゼ 
ン テーション ツールなど幅広い用途に 
利用できます、 


ブライべ一卜なデータやビジネスデータ 
を簡単な操作で管理•運営できるパ 
ーソ ナルデータベースです c リフィル、 
タックシール、ハガキなどへの印字も 
0 K „ シャーフ電子手帳とのデータ交 
換可能(別売の通信ケーブル CE -300 
L が必要)。 


他のソフトを起動する前に、この Sta 
tioneryPRO -68 K を一度起動するだけ 
で、他のソフトを実行中にも「スケジユ 
ール/住所録 j など多彩な機能をワン 
タッチで使用できます,シャーフ電子 
手帳とのデータ送受信も実現.、(別売 
の通信ケーブル CE -300 L が必要) 



給与計算から明細発行までを、リ 
アルイメージ入力により自動的に、 
素早く処理することができます。 


自由なレイアウト画面で入力でき 
るワープロ機能を装備したカード 
型リレーショナルデータベース。 


入力の手間を軽減するヒストリー 
機能を装備した、コマンド型リレー 
シヨナルデータベースです. 


TOP 財務会計 


■ CZ -227 BS 標準価格200.000円(税別) 


CARD PR068K 周システム手削フィル集 


■ CZ -241 BS 標準価格9,800円(税別) 


BUSINESS 


■ CZ -212 BS 標準価格68,000円(税別) 


会計エキスパートシステムとデー 
タベースを搭載し、機能と操作性 
を両立させた財務会計ソフト。 


CARD PRO-68K 用活用フォ-ム集 


■ CZ -242 BS 標準価格9.800円(税別) 


スプレッド シート (表計算)、 データ 
ベース、グラフ作成機能を一体化 
させた統合ビジネスツールです。 



NEW PrintShop 


■ CZ -221 HS 標準価格19.800円(税別) 


オリジナリティあふれるはがき等、 
簡単に作成、印刷できるホームプ 
ロダクテイピリテイツール。 



ックライブラリ V0L.1 


■ CZ -235 GS 標準価格8.800円(税別) 


クラフィックライフラリ V0L.2 


■ CZ -236 GS 標準価格8.800円(税別) 



■ CZ -257 CS 摞準価格19.800円(税別) 
Communication PRO -68 K のバー 
ジョンアップ版です。 MNP モデムへ 
の対応で、ハードフロー制御 (CTS 
/ RTS ) をサポートじ T います。 

※バージョンアップ対応中 




SX-WINDOW verl.0 


■ CZ -259 SS 播率価格6.800円(税別) 
複数の作業を同時に処理できる 
疑似マルチタスクや入出力装置の 
設定が簡単に行える多機能コント 
ロール パネルを搭載した本格ウイ 
ンドウシステムです。 I 0 CS コールを 
利用したソフトの処理速度を高速 
化する iocs . X を付属。 



OS-9/X 68000 


■ CZ -219 SS 標準価格29.800円 (税別) 
マルチタスク機能、リアルタイム機 
能を活かした使いやすく機能的な 
0 S 環境を提供します。 

※〇 S -9 はマイクロウヱア社の登録商摞です. 


Human68k ver2.0 


■ CZ -244 SS 標準価格9,800円(税別) 
システムハ。フォーマンスをさらに高 
める処理機能を付加した Human 
68 k の 最新バージ ョ ン です。 



■ CZ -247 MS 標準価格28.800円(税別) 


■ CZ -248 MS 摞準価格8.800円(税別) 


Sampling 


■ CZ -215 MS 標準価格17.800円(税別) 


THE 福袋 V2.0 



SOUND 



■ CZ -224 LS 標準価格9.980円(税別) 


■ CZ -214 MS 標準価格15.800円(税別) 


AI-68K Staff USP/OPS PRO-68K 


■ CZ -234 LS 標準価格188.000円(税別) 


MUSIC 



■ CZ -213 MS 標準価格〗8.800円(税別) 



シューティングゲーム 

ぐンインビー〉 

■ CZ -217 AS 
標準価格7,800円(税別) 
© K 0 NAMI . 1988 



シューティングゲーム 

く沙羅曼蛇〉 

■ CZ -218 AS 
標準価格8.800円(税別) 
e : K 0 NAMI . 1989 



ブロックゲーム 

くアルカノイド〉 
■ CZ -222 AS 
標準価格7.800円(税別) 
C ) TAIT 0 C 0 RP . 1987 


ドライブ ゲーム 

くフルスロットル〉 

■ CZ -231 AS 
標準価格8.800円(税別) 
e > TAIT 0 C 0 RP . 1988 



スポーツゲーム 

ぐ熱血高校 
ドッジボール部〉 
■ CZ -232 AS 
摞準価格7.800円(税別) 

CiTECHNOS JAPAN C 0 RP . 1988 



アクションゲーム 

くパック マニア〉 

■ CZ -233 AS 
標準価格7.800円(税別) 
C^NAMCO 



アクションゲーム 

くニュージーランド 
ストーリー> 

■ CZ -230 AS 
摞準価格8.800円(税別) 
C TAIT 0 〇 ORP . 1989 



スポーツゲーム 
く V ’ BA しし〉 

■ CZ -246 AS 
摞準価格7.900円(税別) 
OTEGHN 0 S JAPAN C 0 RP . 1989 



ハ*イクレー シング ゲーム 

くスーハ•ーハングオン〉 

■ CZ -238 AS 
標準価格8.800円(税別) 
◎ SEGA 1987 


くサンダーブレード〉 
■ CZ -239 AS 
標準価格9.500円(税別) 
◎SEGA 1987 


アクションゲーム 

くダウンタウン熱血物語〉 
■ CZ -254 AS 
標準価格8.800円(税別) 

© TECHNOS JAPAN C 0 RP 1989 


アクションゲーム 

くサイバリオン〉 
■ CZ -229 AS 
棵準価格8,800円(税別) 
©TAITO CORP . 1988 


スポーツゲーム 
ぐ熱血高校ドッジポール部 
サッカー編〉 

■ CZ -262 AS 

镙準価格8,800円(税別) 

& TECHNOS JAPAN CORP . 1990 





























































































1 lV?L 


®HAf 


X68000EXE クラブ 


EXE おみこし活動スタートん 


⑯まずは EXE クラブへ⑯ 

人会無料で3つのメリット/手続きは本体同梱の入会申込ハガキを送るだけ。 


メリット1 ► 会員番号入りオリジナル会員証電卓がもらえます。 




メリット2►各種フェアご優待•イベント案内等、数々の特典があります。 


メリット 3^ X 68000 の活用情報が手に入る 「 EXE おみこし活動」に参加できます。 


※「入会申込八ガキをなくしてしまった j という方は、おみこし活動隊までお電話下さい。 


® EXE おみこし活動とは7⑱ 

いわば 「 X 68000 ユーザーの、 X 68000 ユーザに よる、 X 68000 ユーザー 
のための」活動です。おみこし PRESS を通じて会員同士情報を交 
換し、もっと68を使しヽこなして盛り上がってしまおう/としうワケ(モテ 
厶がなくてもできるパソコン通信のようなもの? 1) なので、 X 68000 へ 
のラブコール、会員独自のテクニック、活用法(マニアックなもので 
なくても他の会員には貴重 /) 等あなたの68自慢をドシドシ聞かせて 
ください。会員からのメッセージは「おみこし活動隊」が整理してコミュ 
ニケーシヨンべーパー「おみこし PRESSj にバッチリ掲載します。 


⑱そして EXE 会員究極の® 

「おみこしかつぎ人」を大募集/ 


^ おみこし活動隊 

へのアクセス方法 


投稿受付/大阪市淀川区西中島1丁目 9-16 新大阪ストロングビル 2 F 
X 68000 EXE クラブ「おみこし活動隊」係 

1106-8 的-0354 


FA 

受付 


^06-304-1539 


★受付時間¬ 


-平日/昼2時〜夜 8時 
日祝/昼12時〜夜8時 


ぎ 


します: 






•クン‘。ひの4び 4 / 


格.. 

の: 





「かつぎ人 J とは、より積極的におみこし活動に参加する人のこと0 
EXE 会員は「かつぎ人」になることで、 X 68000 ユーザーとしてますま 
す充実、3つのメリットで強力にサボートされます。 

メリット1「おみこしかつぎ人の集い」に参加できます0 
シャープと EXE 会員の双方向コミュニケーションの場として開設さ 
れる X 68000 情報交換会「おみこしかつぎ人の集い」は、シャープの68 
スタッフと直に意見交換ができるおいしいチャンス。引年2月より全国 
レベルでスタートするこの会に参加すれば、68ユーザーとしてトップ 
レベルです。 

メリット2「おみこし PRESS 」 定期送付0 
お店まで足を運ばなぐ C も「おみこし PRESSj が毎号お手元に届きます。 
メリット3》「ソフトウェア•フィールド」直送。 

X 68000 最新ソフト • 各種周辺機器が一覧できる「ソフトウェア • フィー 
ルド」を半年に〗回お送りします。 

おみこしかつき人になるには …… 

以下の年会費(おみこしかつぎ代)が必要です。〈個人入会〉3 . 000円/ 
〈グループ入会 (5 人1組)>2,500円/〗人おみこし活動スタート記念特 
別割引期間 (91 年1月末まで)に限り〈個人入会 >2. 000円〈グループ 
入会 (5 人1組)>1.50()円/1人。 

★詳細は「おみこし活動隊」にお電話ください。 




日^^^^^ 

'しま 為减逾 ね、 



麵 

へ、令濟 


ド 

々命 誇 

淡 


ハべさ 


•為參 3 

、料4卜、 

H 春 


外 ’ %條对会打 . 


お間い合わ. 


せは... 


シヤ' 


.フ ㈱ 霉子拽器 


寧寒本部シ 


スァム機器贷嫌加 . 




















◎応募要項© 

応募期間平成3年1/20〜3/20 

発 表平成3年5月発売の ASCII * Oh ! X の当社広告紙面 

101規定 C - TRACE ユーザーが C - TRACE を使用して作成した CG 静止 
画像、アニメーション 

募集部門•静止画キャラクター部門#静止画アート部門•静止画産業デ 
ザイン部門•アニメーション部門 

応募方法キャストまで応募要項を請求後、静止画 CG 画像はフロッピー 
ディスク、アニメーションはビデオテープ ( VHS 、 ベータ、8 
mm のい ずれか)で応募 

賞 ■グランプリ、準グランプリ、金貧、銀貧、銅貧(各1名)、 ■ 

ステゴちゃん貧 (3 名)、■メーカー特別貧 

賞 品■グランプリ、準グランプリ、金賞、銀貧、銅貧の順に以下の 

C-TRACE98 EXTENDER 

価格¥128.000(税別) 


審査員 

(敬■各) 


賞品の中から1つを選択——海外旅行クーポン、トランスビ 
ュータ、 フレームバッファ、 キャスト商品券 (10 万円券、7万円 

券、3万円券)■ステゴちゃん賞-ステゴちゃんぬいぐるみ 

■ メーカー特別赏—— SONY 賞〈データディスクマン〉、アイ • 
オー•データ機器賞 <EMS メモリボード (2 M )>、 SHARP 賞くコ 
プロセッサボード〉、 ASCII 賞〈月刊アスキー1年間無料購読) 
※応募者全員にもれなくキャストオリジナルポストカードをプレゼント 
ASCII - Oh ! X • Oh ! PC : 各編集部、 cg キッチンまざぁぐぅす代表長谷川一 

光、 C-TRACE ユーザークラブ会*/ J 、 石光、東京工学院芸術専門学校講師塩 
千子、超人(超能力者•平成 2 年 II / 27 フジ TV 出演)玉手峰人、ィラストレ-夕-伊川 

英雄' 各協賛会社 

ソニ-コンピュ-タシステム株式会社、株式会社アイ•才-.デ-夕機器、シャ-プ株式会社、月刊アスキ-編集部 


民 

1670 万色表示。 

圈 

超高速。 

1 

メタ ボール 対応。 


フルカラ-フレ-ムバッファ4 

価格¥69,800(税込) 


參 PC - 9800シリーズ、 PC - 286,386シ 
リーズ•メインメモリとして ir 3 ycl 6 M 
使用可能 ^EM S によるメモリ抵張の 
ようにスピードを犧性にしません#30 
%の高速化(当社 C-TRACE Ver .3.0 
比) • Ver .3.0 からのステップアツプ受 
付中くソフトウェア〉 


• PC -9800 シリーズ、 P 0286, 386シ 
リーズ#1670万色同時表示#フレーム 
バッファ制御のためのサンプルソース 
付き參 RAM ディスクドライバ付き參 
ズーム、スクロール&パン機能をハー 
ドウ エアでサポート•フレームバッフ 
ア+ユーテイリテイデイスタ (2 枚) 


C-TRACE TP Ver.3.0, 

価格¥298,000(税込) 

• PC -9800 シリ ーズ、 PC -286, 386シ 

リ ーズ、 X 68000 シリーズ •ノ いノ コン 
でレイトレーシングをワークステーシ 
ョン並みのスピードで実行可能•並列 
处理によりスピードアップも可能•卜 
ランスピュータボード+ C-TR A CE 
Ver .3.0 のセット 


★の製品は店頭販売いたし 
ておりません。直接当社ま 
で、お申し込みください。 


C-TRACE + ^ 

価格¥198,000 (税別)1 
• PC - 9800シリーズ、 PC - 286,386シ 
リーズ、 X 68000 シリーズ # C-TRACE 
シリー ズ社位の スペック參メタボー 
ル^応參スポット光泥1>す応參ぴチヤン 
ネル対応により商度な合成が可能參ス 
コープ機能対応により部分的にの 
再計^力呵能 # DOS ェクステンタも 
対応#差額交換受付中ぐノフトウェア〉 


C-TRACE68 Ver.3.0 
C-TRACE98 Ver.3.0 
C-TRA< 

C-TRACE 


¥98,000( 说別) 
¥98,000( 说別) 

¥68,000 別) 

¥530,000 (说別 > 

ット取扱-1 


株式会社キャスト 


※電話 *FAX# 号が変わりました。お間違えのないようお願い致します。 

.お問い合せ先〒158東京都世田谷区等々力2-卜13 TE し 03-3705-1065 FAX .03-3705-5224 


CE TOWNS ¥68, C 

CE NEWS Ver.3.0 ¥530, C 

-部クレジ.: 

Cos 





























本格ホラー RPG ゴースト八ンターシリーズ#1 

ラプラスの魔 

原作/安田均音楽/小坂明子 
標準価格8,700円 




『ラプラスの 魔』 (ゴーストハンター I )は、ぼくにとって最初に取り組んだ 
コンピュータ•ゲームということから非常に愛着がある0『ロードス島戦記』 
のコンピュータ•ゲームも、ある意味でここから派生した 
といってもいいだろう。かなり手ごわいけれども、解け 
たときの満足感は格別のはずだ0コンピコ 
ラー RPG はいまだ海外でも、それほど目だったものは 
現われていない。こうした分野が好きな人には“お薦 
め”だと思う。では、そう遠くない時期に“ゴ 
ンタ ー r でお会いしましょう。 安田均 



平日の午後I時半から6時の間 U、 お間い合わせに直接お答えします 
その他の時聞と土•日•祝日はる24時間 H 裔もてさるテープサーヒ 


ユーザーズテレホン》大阪06 (315) 8255 | 

♦標準価格に消費税は含まれており i せん。お貢上げの R に別途消費税をお支払い下さい。 

♦通信販売ご希 a の方は、住所•氏名 •電話番号 •商品名 •橙 種名•メディアを明記の上、現金書»または郵便搌瞽(大阪 8-303340) にてお申し込み下さい,> 
送料は無料ですが、樣準偭格に消費税の3%を加えた金額をお送り下さい,, 


▼▲罗 叫 I -'!, h ぃ m 

株式会社エ厶•エー•シー八ミンクバードソフト 
亍530大阪市北区曾根崎2丁目2番15号 


夕のホ 











X 的000シリーズに、新登場/ 
^■〇ァノレツ9ノレト 

好評発売中! 

mm :遞 


SCENARIO SIMULATION GAME 




功^ 

_ 4» < r n jp -- 3 

4ノン" 




g ^% 〜〜 狂激の銀河 , 

bcnwarzsen 


J 11 

I r 

一 — ^ 



ヴ アル ツシ ル 


ノ飞 

wt mi で. .. •断柏の ae 瀰 . 

”,,•ぐ“, 11 .断船の麂却 • 

^ 一 ►« 防の売却 

— -- 一 ,►斬船のスクラッブ 

- -^1 •.« •防のスクラップ 

120 * 1 , .. _ _,, , • : 

^ b パ •—:: * *—r-T ― '^rr^rrrr- -r ^ * • 





•/ 1 

{判 

•. 卜 I 
一 」 :-■ 


断 iiUd 奶遍 
5ft 1 M5L< 250 

mzm^f H 担 M2 1 

第 3 *防 H 坠 50 

M-4*KT HSL' 50 

释所臞 A A 5L' U 

坪 . 所臑 B 

今回通柏 M 5 i ! !•:' ! 


ストーリィ性を持ったドラマティックなゲーム展開 

シュヴ P ルツシルトの最大の特徴は、そのゲームシステムにありま 
す。单なるウォーシミュレーションではな<、ゲームを進めてい< 
にしたがって、次々に新たな目的が現われ、ブレイヤーは知らす知 
らすにゲームのシナ U 才に引き込まれてい<といろ、ドラマテ ィツ 
クなゲーム展開が魅力の、 SF シミュレーションゲームです。 

究極のゲームシナリオ 

ゲームのおちしろさはシナ 1 J 7 T で決ま0ます。軍事行動、外交政策 
調查 • 研究、 II 金運用、商業取り引きといった載略要累を完璧にシ 
ミュレート。シミュレーションゲームの面白さを徹底的に追求した 
究極のゲームシナ ij 才です。 


5 THD *3 枚組¥12,800(価格には消費税は含まれておりません) 


■通信販売(送料無料)のお知らせ 

エ画堂スタジオでは通信販売をしてお 1 〇ます。ご希望の方は、品名_機櫃名•住所•氏名•電 
話番号を明屺の上、396の消霣税を加算して現金窖留でお申し込み<ださい。 


KOCADO 

Softworc Products 


〒162東京都新宿区市谷台町11 
TE し 03-3353-7724 


資料謂求券 
〇 mx *2 月号 









pjsajoo 

fT 

XT 

F F 

童富!! 

ぞの/ 

4^—- _ 


3WAY- 



3方向同時のビーム発射がろれしい今日このごろ、 
だが、弾の威力がそれほど強くないのが 
たまにキズ。 


5WAY- 



編隊で襲ってくるザコキヤラにはこれ/:/ 

射程距離の短さと威力の弱さに注意するべ〜し/ 


アトミックミサイル 


弾の威力はピカイチ//だが即射ができないので 
あとは君の腕しだい。 





































































































アドレナリン全開 
シューテインク' 
ジェミニウイング 


/C 



大ヒツト驀進中•グ 源靜菌_ 


Check point/ 







株式会社システムサコム 

〒130東京都墨田区両国 4-38-16 
両国桜井ビル 4 F 

ソフトウェア部 03(3635)7609 



.人”.‘ 


□「•カサイ•口ーラーの 





スクランブル 

ガン シップ 麟象奔 _ // 

そして M 斑 i : 待ち受ける-1の敵の21体と/ 




socom 






















































■■ wmmws 

鯽定 / 


m 2,000 (5 枚組) 

:-•フイ リップ •バ■バラ•ドウ-テイ •卜 ■マス•スウェイジ他 制作/ Tenky 

鼸二郎/翊赌/矢晒/鸪籽■雜,賭/翮大翮价痛親材/靛酞醐 NY 刪 18 力/酒并友身 


日本ココ亡ユーステ/ _ A 株式会社 

〒106東京拙; I〆 :内聆44 16 13第 2 fJA ヒル TEL 03 3486 6314(代み; 

わ WI いで,わソノ K ハパ ノ u タシ <4 Hf , ihu ) 








X68000 SUPER/SUPER-HD/PR 〇 II/PROII-HD 



(送料•消費税込) 


SUPER セットでお貢い上げの方に•デイスケット10枚♦ジョイカード2ケプレゼント中.グ 

® セット: CZ -604 C-TN + CZ -606 D-TN . 定価¥427,800 ►特価 価格は TEL 下さい。 


|12 回 28,100 

24 回 

14,900 

36 回 

10,300 

48 回| 

8,100 

60 回 6,800 ! 


©セット: CZ -604 C-TN + CZ -613 D-TN . 定価¥483,000►特価価格は TEL 下さい 


12 回 31,800 24 回! 16,800 36 回 I 11,700」48 回「 9,100 IW 回 7,700 


SUPER-HD セットでお買い上げの方に•デイスケット10枚•ジョイカード2ケプレゼント中.ヴ 

みセット: CZ -623 C-TN + CZ -606 D-TN . 定価¥577,800 ►特価 価格は TEL 下さい 



12 回 37,900 

24 回 20,000 

36 回 

13,900 

48 回 

10,900 

60 回 

9,100 

g セット: CZ -623 C - TN + CZ -613 D-TN . 定価¥633,000 ►特価 価格は TEL 下さい。 

112 回 41,600 

24 回 22,000 

36 回 

15,300 

48 回 

11,900 

60 回 

10,000 


PROII 


A セット: CZ -653 C + CZ -606 D . 定価 ¥364.800 ►特価 価格は TEL 下さい, 

12回; 22,600 24回!11,900 36回! 8.300扣回 i 6,500 回 i= 5,400 


プレゼント中•グ 


セットでお買い上げの方に 
•ディスケット10枚1 
♦ジョイカード2ケ J 
◎電話にて、ドンドンお問合せ下さい// 
クレジット表には、出せないほどの価格です。 
メーカーさん、ご免なさい。 

ユーザーの方には大勧迎されそうです。 
今がチャンスです、ハイ。 


セットでお頁い上げの方に 
籲デイスケット10枚1 
♦ジョイカード2ケ} 
プレゼント中.グ 


B セット: CZ -653 C + CZ -605 D - 


•定価¥400,000 ►特価 価格は TEL 下さい 


12回 1 12.806 |24回13.000 136019,000 148017,100 ! 60回 | 5.900 


C セット 
P セット 

.產セット 

A セット 


: CZ -653 C + CZ -604 D - 
: CZ -653 C + CZ -613 D 
: C 2-653 C + CU -21 HD - 

: CZ -663 C + CZ -606 D • 


••定価 ¥798.000 ►特価 
••定価¥420.000 ►特価 
••定価¥433,000 ►特価 

••定価 ¥474.800 ►特価 


価格 UTEL 下さい: 
価格 UTEL 下さい, 
価格は TE し下さいっ 

価格は TEL 下さい: 


PROII-HD [ 12回! 30,800 24回:16,300 ; 36回11,300 48回; 8,800 i 60回: 7,400 


セットでお買い上げの方に 
•ディスケット10枚1 
鲁ジョイカード2ケ f 
プレゼント中" 


日セット: CZ -663 C + CZ -605 D 


••定価 ¥510.000 ►特価 価格は TEL 下さい 


12回 132,500 24回 I 17,100」36 回 n ,900』48 回丨 9,300 160 回 1 7,800 


〇:セット 

D セット 
£セット 


: CZ -663 C + CZ -604 D " 
: CZ -663 C + CZ -613 D - 
: CZ -663 C + CU -21 HD 


••定価 ¥489.800 ►特価 
••定価¥530,000 ►特価 
••定価 ¥543.000 ►特価 


価格は TEL 下さい。 
価格は TEL 下さい: 
価格は TEL 下さい。 


X 68000 シリ 


台数限定 ■ 送料、消費税込み 


〜 PSA スペシャルセツト=限定誌上販売// 


EXPERTII 



みセット: P & A 厳選セット 

■ CZ-603C 

(本体価格 ¥338,000) 

㊉ 

■CZ-606D 

(モニター定価 ¥79,800) 

►S 鉍 ¥304,000 


® セット 

■ CZ-603C+CZ-604D 

定価■細.. •►籠 ¥309,000 
©•fe ット: 

■CZ-603C+DZ-605D 

定価■册 •• ►特偭 ¥322,000 

©セット: 

■CZ-603C+CZ-613D 

定_,〇〇〇… ►細 ¥342,000 

©• b ット: 

■CZ-603C+CU-21HD 

定価 ¥486朋 .•.►特価 ¥347,000 


※セットでお買い上げの方に、春ディスケット10枚、•ジョイカ-ド2個プレゼント中// 

EXPERT-HD 

⑬セット: 

■ CZ -612 C + CZ -604 D 
定価 ¥560.800… ►特価 ¥340 j 000 
© t ット: 

■CZ-612C+CZ-605D 

定価 ¥58 _">g 湘 ¥35_) 
©•fe ット: 

■CZ-612C4-CZ-613D 

Si¥60iooo->@8i¥3? 2,000 

© t ッド 

■CZ-612C+CU-21HD 
定価¥〇〇 ...►起 特価 ¥386,000 



④セット : P & A 厳選セット 

■CZ-612C ( ブラック) 

(本体価格¥466,000) 

㊉ 

■CZ 别 6D ( ブラック) 

(モニター定価 ¥79,800) 

►=¥335,000 


■NEC= モデム ( 定価 ¥44,800) 
®C0MSTARZ 2424/5 

•2400/ 1200 bps 全二璽 
_ P 5 クラス 
インターフェース付 

P&A 起特価 

¥28,500 

(送料•消费税込み ¥30,385) 



I ALL in Note 

フリートップ 
パーソナルコンビ ユー タ 

0AX-286N-H2 

(定価 ¥398,000) 

P&A 超特価 

価格は TE じ F さい。 





目// 



(平成3年2月末はもちろん) 

:一括払い 



手数料(金利)無料 

ご利用下さい。 


プリンター (送料 ¥ 1 . 000 ) 

_ CZ -8 PK 8( 定価 ¥152.000) 

• 24 ヒン;興字ブリンタ ヒ交ハ 

•娜 圆¢¥49,800 


(送料•消費税込 v 


2 , 324 ) 


超低金利クレジット 0 


© V 秋葉原 


でおなじみ ( 


CYBER STICK 

CZ -8 NJ 2 
(定価 ¥23, 800) 

起特価.グ 
¥18,500 (送料•消费税込み ¥19.570) 




X68000 シリ-ズ専用 特価¥16,480 

M 旧 I インターフェースボード 

SX -68 M (サコム) 

(純生コンパチ)定価 ¥19,800 

送料づ肖賫税込みノ 



X 6 昍 0 D 用メモリーボード ( I / O . DATA ) (送料糾〇〇) 
0 PIO -6 BE 1 -A w ^ 0 

^fiSV 25.000 ¥ 189000 

(送科•消贄税込¥19.055〉 

© PIQ -6 BE 2-2 M ハハハ 

定偭 ¥5。。。。 ¥36,000 

38.11 0) 7 

③ PIQ -6 BE 4-4 M 

定 88.000 ¥63,000 

(送科•消贄税込 ¥66.744) 


•お近くの方は 
• 本体単品で i 
• ビジネスソフト : 



ジョイスティック 送料 ¥500 

• X -1 PRO 

定価 ¥9,500 ►特価 ¥7,800 

• ASCII STICK 

定価 ¥6,800 ►特価 ¥5.500 


ド03<£超低金利クレジットをご利用ください\ 


•本広告の掲載の商品の価格については、消寶税は含まれておりません。•営業時間=平日 AM 10:00 へ PM 7:00、 日祭 AMI 0:00〜 PM 6: 00 













































































































Z,s STAFF PF 
Z,s TRIPHONY 

テラッッォ(ノ 
KAMIKAZE 
C&. Profession 
Final Ver3.2 (: 
C-comoiler PR' 
CARD PR068 卜 
C compiler PR( 
OS-9/X 68000 C 
AI-68K CZ234L 
THE 福袋 V2.0 
SOUND PR06( 
MUSIC PR068 
Sampling PR06 
MUSIC-studio I 
MUSIC-PR068 
New-print Shop 
Communication 
Communication 
C-TRACE68 
サイクロン EXPF 
G68K Ver2 PR 
THE FILE 

G ツール(ザイン 
た一みのる 2 (Sf 

マジックハ•レット 

Hyper word C2 
_ ゲームソフト 2 




V 


PR 


(g)CZ-8NSI 
(©CZ-6VTI 
©CZ-6TU . 
◎BF-68PR 
(g)CZ-6BEI 
®CZ-6BEh 
◎CZ-6BE2 
❹ CZ-6BE4 
① CZ-6BFI 
Q)CZ-6BPI 
(g)CZ-6BMI 
(OCZ-6EBI- 
®AN-S100- 
㉔ CZ-6SDI- 
◎CZ-8PC3 
0CZ-8PC4 

◎ CZ-8PG1 
(S)CZ-8PG ; 
⑤ CZ-8PK1 
① CZ-6PVI 

◎ IO-735X 
©CZ-8BSI 
V^PIO-6BE1 
……定価 ¥25,1 


■まずはお期 

03-651-1 

• 下取りの J 
• 貢取りの j 
❿近郊の方 


《便う 

•月々、 
»支払 I 


參定休日/毎 i 



1068K Ver2.0( ツァイト) . 

デジタ ^( レクラフト(,ンァイト) . 

メグパード〉 . 

• ムシング • グッド) . 

al Pack ( マイクロウェアジャパン )" 
c — エスヒ •一) . 

068K Ver.2 CZ-245L. 

く CZ226BS . 

)68KCZ2MLS . 

JZ2I9SS . 

_S.. 

| CZ224 し S . 

JK . 

K CZ2I3MS. 

>8K CZ2I5MS . 

=»R068K 237MS . 

KCMIDO 247MS . 

i 22IHS. 

223CS . 

Ver.2 CZ-257CS . 

er.3.0( キャスト) . 

把 SSa68. 

0 . 

OFESSOR ( ロゴシステム〉 . 

ソフト) . 


( ミュージカルプラン) . 

-25 IBS. 

0%OFF OK. グ(一部ソフト除く) 


•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
- 定価 1 ! ( 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
… 定価 ¥ 
•• 定価 ¥ 
• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 V 
•• 定価 ¥ 
•• 定価 ¥ 
•• 定価 ¥ 


58,000 岭 特価 ¥39,500 
39,800 岭 特価 ¥27,500 
19,400 •♦ 特価 友丄&»«^〇 
68,800 蛉 特価 ¥45,500 
58,000 岭 特価 ¥43,000 
38,000 岭特 mriYnn l 4rrff 
44,800 岭 特価 ¥34,500 

29,800 岭 特価 TEL 下さい。 
39,800 岭 特価 ¥28,500 
29.800 岭 特価 ¥20,700 

188,000 岭 特価 TE し下さい . 

9,900 ■►特価 ¥ 7,400 
5,800 岭 特価 ¥11,300 
5,800 岭 特価 ¥ 

7,800 峙 特価 ¥ 

5,800 岭 特価 TE 
28, 800 岭 特価 ¥ 20,500 
9,800 岭特価 TE 
9,800 蛉 特価 ¥ 

9,800 岭 特価 ¥1 
98,000 畤 特価 ¥69,800 

98,000 ■► 特価 TEL 下さい 
22,000 岭特佩 y 17^00 
28,000 岭 riffinyYQiinfr 
28, 000 岭 特価 morr 
17,800 畤 特価 y 1 1,gQty 
19,800 岭 特価 XI HiOOfr 
39,800 ♦ 特価 y 3 i lOOTT 


r 1 3.300 
800 ■►特価 ¥1 2,500 

E し下さい。 


E し下さい。 

9,800 

15,500 


-A(I/O DATA) 

X)0 ►特価 ¥18,000 


. 定価 v 188.000 ►特価 ¥145,000 

. 定価 ¥ 69.800 ►特価 ¥ 54,000 

. 定価 ¥ 33.100 ►特価 ¥ 

. 定価 ¥19.800 ►特価 ¥ 

. 定価 ¥ 35.000 ►特価 ¥ 

. 定価 V 38,000 ►特価 ¥ 

. 定価 V 79,800 ►特価 ¥ 

. 定価 ¥ 138. 000 ►特価 ¥107,000 

. 定価 ¥ 49,800 ►特価 ¥ 38,200 

. 定価 V 79.800 ►特価 ¥ 

. 定価 V 26.800 ►特価 ¥ 

. 定価 V 88.000 ►特価 ¥ 

. 定価 ¥ 36.600 ►特価 ¥ 

. 定価 ¥ 44.800 ►特価 ¥ 

. 定価 ¥ 65.800 ^ 

. 定価 V 99.800 〇〇 

. 定価 ¥160, 000 I ヒ L 卜さし。 

. 定価 ¥ 97.800 J 

. 定価 ¥ 198, 000 ►特価 ¥1 53,000 

. 定価 ¥ 248,000 ► 特価 ¥ 190,000 

. 定価 V 23,800 ►特価 ¥ 19,000 

I (X)PI0-6BE2-2M(l/0 DATA) I ®PI0-6BE4-4M(l/0 DATA) 

I ……定価 ¥50.000 ►特価 ¥36,000 丨 ^ . 一 — 


25,000 

15.500 

26.500 
28,600 
60,000 


61,〇00 
20,300 

67.500 

28.500 
35,000 


アイテム 

• HXD -040(40 MB /23 ms )- 

參 HXD -042( 增設用) . 

アイテック 

• ITX -640(40 MB /28 ms ) •• 

• ITX -680(80 MB /20 ms ) … 


•定価¥彳18,000 ►特価 ¥ 88,000 

•定価¥128,000 ►特価 ¥ 95,000 

•定価¥158,000 ►特価 ¥ 83,000 
•定価¥198,000 ►特価 ¥ 97,000 


• CZ -8 PC 3( カラー漢字24ドット熱転写プリンター) 

定価 ¥65,800 . 特価 ¥39,800 

• CZ -8 PK 8(24 ピン漢字プリンター 136 桁) 

定価 ¥ 152,000 . 特価 ¥ 49,800 

• CZ -8 PC 4 P & A 特選•グ(カラー ill 字48ドット熱車云写プリンター) 

定価 ¥99,800 . 特価 ¥ 57,000 


®MD-24FS5( オムロン) 
⑧ MD-24FS7( オムロン) 


©コムスター2424/4 (NEC). 

@ コム スター 2424/5(NEC). 


,•定価 ¥ 49,800 ►特価 ¥ 34.800 
,•定価 ¥ 64,800 ►特価 ¥ 45,000 
•• 定価 ¥ 38,800 ►特価 ¥ 28.000 
.•定価 ¥ 44,800 ►特価 ¥ 28,500 


B ®3 段 
875( H ) 

X 580( D ) 
X 610( W ) 




⑧4段 
1320( H ) 

X 600( D ) 
X 630( W ) 

¥9,000 〆 j ¥11,500 





©5 段 
1280( H ) 
X 600 ⑼ 
X 620( W ) 

‘¥15,000 


••定価 ¥88,000 ►特価 ¥63,000 


_X 68000 セット . 

• X 68000 ACE セット . 

參 X68000ACE-HD セット…… 

• EXPERT セット…… 

• EXPERT-HD セット 

• PRO セット . 


► ¥180,000 • X68000PRO-HD セット . ► ¥ 270,000 

► ¥200,000 • EXPERTI1 セット ►¥ 250,000 

► ¥215,000 • EXPERTII-HD セット >>¥320,000 

► ¥230,000 • PRO II セット ►¥ 240,000 

► ¥265,000 • PR0I1-HD セット . ►¥31 0,000 

► ¥250,000 


その場で高価現金買取り•高価下取り OK // 
t 話下さい。 ■下取り•買取りでお急ぎの方、直接当社に来店、また 

884 FAX :03-651-0141 は、宅急便にてお送り下さい。 

典合 . 価格は常に変動じ C いますので査定額をお電括で確認して下さい。 

(差額は、 P & A 起低金利クレジットをご利用下さい〇) 

«合 . 現品が着き次第、2日以内に買取り金額を連絡し、振込み、又は書留 

でお送り致します。 

は、 P&A 本店まで、直接お持ち下さい。即金にて、 ¥1,000,000 までお支払い致します。 


W な超低金利クレジットをご利用 下さい》 

<1,000円から 0 K . グ•ボーナス払い OK (夏冬10回まで OK ) 
•、回数1回〜84回•お支払いは、8ヶ月先からでも OK // 


〔現金一括でお申し込みの方〕 

•商品名およびお客様の住所•氏名•電話番号をご記入の上、代金を当社まで、現金 
書留でお送りください。(プリンター•フロッピーの場合、本体使用機種名を明記のこと) 
〔銀行振込でお申し込みの方〕 

•銀行振込ご希望の方は必ずお振込みの前にお電話にてお客様のご住所•お名前. 
商品名等をお知らせください。 

(電信扱いでお振込み下さい。) 

〔クレジットでお申し込みの方〕 

•電話にてお申し込みください。クレジット申し込み用紙をお送りいたしますので、ご記入 
の上、当社までお送りください。 

♦現金特別価格でクレジットが利用できます。残金のみに金利がかかりま 
籲1回〜84回払いまで出来ます 3 但し、1回のお支払い額は¥1000円以上。 


固水曜日=第3水曜•木曜は連休とさせていただきます(祭日の場合は翌日になります) 



♦現金書留及び銀行振込でお申し込みの方は、上記商品の料金に3%加算の上でお申し込み下さい。詳しくは、お電話でお問い合せ下さい。 


株 A 会朴ピー•アンド•エー fSo 

〒124東京都葛飾区新小岩2丁目1番地19号 日祭: AM 10 

a 03-3651-0148 (代)? 3 


営業時間 

平日: AM 10:00 〜 PM 7:00 
日祭: AM 10:00 〜 PM 6:00 


X . 

- 3651-0141 


マイコン 

ビデオ 

ビデオテープ 


アフターサービス 万全 

全商品保証付。専門の担当者がお客様の立場で対応します。 

初期不良、輪送トラブル etc. 

万が一初期不良、輸送トラブルが発生しました際には、即交換させていただきます, 


〔振込先〕住友銀行新小岩支店 

当 No .263914 ㈱ ピー•アンド•エー 


中古パソコンは P & A におまかせ.グ 


通信販売お申し込みのご案内 


中古パソコン(セットはモニター付)送料¥2,000 


ック(送料無料)移動自由(キャスター付 》 


ーナー(送料 ¥500) 


モデムコーナー(送料¥ 1 , 000 ) 


, 000 ) 


プリンター(ケーブル•用紙付)限定5台新品(送料¥ 


84回払いまで〇にグ 


★頭金なし/★即日発送 


丄州超特価 1 HI / で ご奉仕ガ 

.寄り下さぃ。専門係員が説明ぃたしまも 

i で受付します。詳しくは電話にてお問合せ下さぃ 。 r 3I P ^ 

の20%引き OK / 丁 EL ください。 ■ 】 ■ ― ■し _ し |. 】 

X 68000 用ソフトコーナー(送料1ケ〜5ケまで¥500) | X 68000 用ハードディスク(送料 ¥1,000) _ 


超特価でクレ'ジツトが組める/ 








































































































































パソコンブラザ 


■店頭にて、ゲームソフト 25% OFR >/ (税別)、起低金利オクトハッピークレジットをご利用下さいガ 



オクトで始まるパソコンワールド- 


m rmmmi 

•営業時間 AM 11:00〜 9:00/日曜•祭日 P / W 7:00 電話一本で、八イ即納 

〒144東京都大田区蒲田 4-6-7 FAvm-q7qn-fi97i 
籲定休印 

:議纖 ラクラぬ' 

0 CT -1 システムインフォメ- 

於 I i ^ i, iii (■!' 'にか r ね I ) 


11回 

2.06 


3 

6 回 

4 

|〇回 

5.5 

12回 

5.5 

15回 

8 

18回 

,〇 

g 



二 

30回 

二 

16 

_ 一 

36回 

17 

48回 

22 

60回 

28 


1 


►超低金利ハッビークレジット( II "卜姒贪ナシ OK / 
► ボーナス M 払 V 、〇 K / ボーナス2卜|払 V 、〇 K . グ 
►配述丨 I の衍定 0K /( Jj 令なサホート休制) 

► irfjv .,'1 の糾たせ I , u 丨 I /イクドノ|丄ータムシ ステム j 

► i .'/ yYi デモンストレーション,九:施中 


オクト 

セレクテッドシステム 

広告掲載商品以外の 
製品も取扱っております。 




▲ 


■本体セツド送料無料(注)本体セット以外の周辺機器(プリンター、モデム、 HDD 等)及びソフトの送料は、北海道•九州地区=1ケロ ¥1500、■その他離島地区は、1ケロ ¥2000となります^ 
※上記料金には、消費税は含まれておりません。消費税が付加されますので、詳しくは、電話でお問合せ下さい。 




1 


平成3年2月末一括払い OK // 

新春恒例お年玉セール実施中。 

► 今月のセツトは、超お買徳//電話で交渉すべし// 



お好みのセットを 
お選び下さい。 
送料無料.グ 


15型カラーディスプレイ TV 



• CZ-604C-TN 

定価 ¥348,000 

現金特価// E 1 H 
お電話下さい。 

I SX-WINDOW 搭載。 

I 拡張 I/O ポート4スロット装備 



* CZ -653 C - BK/GY 

定価 ¥285,000 

CZ -663 C - BK/GY 

定価 ¥395,000 

CZ -8 NJ 2 1^| 

籲インテリジェントコントローラ 

定価 V 23.800 

超特価¥18,000 



㊇ GZ - 6040 + CZ -605 D ••.•定価合計¥ 463,000 ►オ クト大特価 


Z -653 C + CZ -605 D •…定価合計¥ 400,000 ► オクト大特価 

36回「¥9,丨00]48回|¥7,10〇160@] ¥5,900 


¥24,600 


¥ 13,000 


CZ - 605 P - GY/BK 

定価 ¥115,000 

15型カラーディスプレイ TV 


( C ' C 2 6630 + GZ -605 D •…定価合計¥ 5丨0,000 ► オクト大特価 


12回 ¥ 33,500 24回 V 17,700 36回 V 12,300 48回 ¥9,600 60回 ¥8,100 



CZ -613: D - GY/BK 

定価 ¥ 135,000 

14型カラーデ< スプレー 



CU -21 HD 

定価 Y 148,000 


••••定価合計¥ 483,000 ►オ クト大特価 

¥ 16,90〇]36回 I >丨丨,700148回]¥ 9,200 60回 ¥7,700 


© GZ -653 G + CZ -6 1 3 D •…定価合計¥ 420,000 ►オ クト大特価 

?网 ? ■■ 


[2 回 


$ 


OZ -663 C + CZ 4 J 3 D …•定価合計¥ 530,000 ►オ クト大特価 


❹ OZ -604 G f C 2-606 D ••.•定価合計¥ 427,800 ►オ クト大特価 


12回 ¥28,000 24回 V 14,900 36回 ¥ 10,300 48回 ¥8,100 60回 ¥6,800 



み 653 C + CZ -606 D •‘••定価合計¥ 364,800 ►オ クト大特価 


12回 ¥22,400 24回 ¥11,900 36回 ¥8,300 48回 ¥6,400 60回 ¥5,400 

6:060 •,••定価合計¥ 474,800 ►オ クト大特価 

■ 12 回 ¥31,200 24回 ¥ 16,500 36回 ¥丨し500 48回 ¥9,000 60回 ¥7,500 


eZ«DM^BK/Tfs|) 


21型カラーディスプレイ 


1D _ 


q ) GZ -604 G + CU -2! …定価合計¥ 496,000 ►オ クト大特価 


. KK ; Z -6!33 C-f G し •..定価合計¥ 433,000 ►オ クト大特価 


36回] 




C >0 Z -6630 + G | j -2 iHD •••定価合計¥ 543,000 ►オ クト大特価 


[2 回〔 


]4回[ 


f 本体セットは、 Cii だけの大特価セ-ル// 
f クレジット価格は、消費税込みですヨ。ご利用下さい•グ 


クレジットの回数は 1 回〜 60 回、ボーナス併用などありますのでお電話でお問合せ下さい。 


NEW 


NEW 


★下記セットでお買い上げの方にはプレゼント.グ MD -2 HD 10枚 i ジョイカード2個(連射式)、|、シリコンキーボードカバー 4^-^( v 95^ 


■朗報です。平成3年2月末一括払い OK //:手数料なし。ご利用下さい。■店頭にて、ゲ l ムソフト^5% OFF // 























































































































































































































(v 68,80 〇) ►特価 ¥ 5,300 
(¥ 98,80 0) ►特価 ¥ 7,500 
(¥188,000) ►大 特価 
(V 79,80 〇) ►特価 ¥ 60,500 
(V 49,80 〇) ►特価 ¥ 38,000 

(¥120,000)►大 特価 

(v 33,100) ►特価 ¥ 25,000 
(V 19,80 Q ) ►特価 ¥15 棚 
(¥4 50,00 0) ►大 特価 
(¥ 29,80 0) ►特価 ¥22400 
(¥298, 000) ►大 特価 


特選周辺機器(送料¥1,000) 


• SX -68 M MID インターフェースボード 

(システムサコム)¥ 19,800 . 特価¥15,000 

♦ CZ -6 BV 1 ビデオボード 

¥21,000 . 特価 ¥15,700 

■増設 RAM ボード =1*0 データ 

© PI 0-6 BE 1- A (1 MB ) 
¥25 # 〇〇〇 . 特価 ¥18,000 

② PIO -6 BE 2-2 M (2 MB ) 

“0,000 . 特価 ¥36,300 

③ PIO -6 BE 4-4 M (4 MB ) 

¥88,000 . 特価 ¥64,000 






■ IO -735 X ぼ.ぶ^) 
大特価 TEL 下さい 


定価¥97,800•… •… 大特価. グ TEL 下さい。 

② GZ -8 PGI (24 ピンカラー漢字プリンター 80 折) 
定価¥130,000… •… 大特価 ガ TEI ■下さい。 

③ CZ -8 PG 2(24 ピンカラ-漢字プリンタ-136析) 
定価¥160,000 …•… 大特価// TEL 下さい。 

@10-735 X (カラー イメージシエ ッ ト) 

定価¥248,000…•… 大特価. グ TEL 下さい。 


•CZ-6BEI 

旧 M 増設 RAM ポード•…•… 

•CZ-6BEIB 

麵設麵ポ-ド . 

•CZ-6BE2 

2 MB 增設 RAM ボード……" 

•CZ-6BE4 

4 MB 増設 RAM ボード…•… 

•CZ-6BFI 

增設用 RS *232 C ボード • 

•CZ-6BGI 

GP •旧ボ-ド . 

•CZ-6BMI 

MIDI ボード . 

•CZ-6BNI 

スキャナ用バラレルボ-ド… 

•CZ-6BPI 

数値演算 プロセッサボード • 

•CZ-6B0I 

ユニバーサル I / O ボード 

•CZ-6EBI/BK 

拡張 I / O ボックス . 

•CZ-6VTI/BK 

カラー イメージ•ユニット••… 


••■(¥ 35,00 0) ►特価 ¥ 26,500 

•••(¥ 28,00 0) ►特価 ¥ 21,000 
.••(¥ 79,80 0) ►特価 ¥ 60,500 
…(¥138,000) ►特価 ¥ 104,800 
•••(¥ 49,80 0) ►特価 ¥ 38,500 
•••(V 59,80 0) ►特価 ¥ 45,000 
...(¥ 26,80 0) ►特価 ¥ 20,500 
… (¥ 29,80 0) ►特価 ¥ 22,800 
-(¥ 79,80 0) ►特価 ¥ 60,500 
...(¥ 39,80 0) ►特価 ¥ 30,500 
•••(V 88,00 0) ►特価 ¥ 66,800 
"• い 69,80 0) ►特価 ¥ 53,000 


參 CZ*8NM2A マウス . :.…… 

• CZ-8NTI マウストラックボール . 

• CZ-8NSI カラーイメージスキャナ . 

•CZ-6BCI FAX ボード . 

•CZ-8TM2 モデムユニット . 

•CZ-64H 增設ハードディスク . 

•CZ-6TU GY/BK RGB システムチューナ -…… 

• BF-68PRO 高性能 GRT7 ィルタ - . 

•CZ-6MOI 光磁気 ディスクユニット ……•- 

參 GZ*6BS SCSI インターフェースポード •• 

•CZ-6BL2 LAN ボード . 


※掲載の価格は変動しますので、まずは、お電話にてご確認ください。 

※上記料金には、消費税は含まれておりません。消費税が付加されますので、詳しくは電話でお問合せ下さい。 
※銀行振込、または、現金書留でご注文の際には、あらかじめ電話でご確認の上、お申し;入み下さい 


周辺機器コーナー (送料 ¥1,000) 


. 000 ) 


■店頭にて、ゲームソフト 25% OFFT グ(税別)、超低金利ハッピークレジットをご利用ください♦グ 

■特に人気のある商品によっては、しばらくお待ち願うことがありますのでご了承下さい。 


厳選された製品を、より安〈、より早く、皆様のお手元にガ | 

広告掲載商品以外の 
製品も取扱っております。 

才外厳定 // SUPER-HD スペシャルセット〜 今がチャンス.グ電話で値切ろう(送料無料) 



•ザ•ワークステーションと 呼ぶ にふさわしい ※マウス •ト ラックボール 付♦グ 

オクト厳定セツト♦グ ディスプレィに 

® : GZ -623 C - 1]: : . 定価合計 ¥ 577,800 ►大特価 


12 回 

¥ 37,800 

24’ 回 

¥ 20,000 

36 回 

¥ 13,900 

48 回 

¥ 10,900 

60 回 

¥9, 100 | 

: GZ -623 C-TN + GZ -613 E)-TN … 

. 定価合計 ¥633,000 ►大特価 

丨2回 

¥41,600 

24 回 

¥ 22,000 

36 回 

¥ 15,300 

48 回 

¥ 12,000 

60 回 

¥ 10,1001 


現金特価/ 
お電話下 i 


上記セットお買い上げの方に、 ① MD -2 HD 10 枚 ③ジョイカード(連射式) 

オクトからのプレゼント♦グ ② サンダーブレード (ゲ -ム ¥9,500)④シリコン キ- ボ-ドカバ-(¥2,800) 


※起低金利クレジットをご利用下さい。1回〜60回払い、頭金ナシ.グボーナス1回及び2回払い OK です0 


X 68 □□□ソフト大セール実施中※ゲームソフトオール 25% off 送料 ¥500 


ーナー(送料ヽ 


〈クラフィック STAFF PR068K Ver ^.0 くグラフィック〉 參テジ タルクラフト 

(シャフト)定価¥58.000 HiiV39,800 定硒¥39,800 . 料®V28,000 


68 . 000 -- 


<C1II> •C&Professionnl Pack く CO ツール》 •CANVAS PR068K 

定进 ¥58,000 H 僅 V43,800 800 CZ-249GS ^ttV22»400 


C/7I3MS 
C^?»4MS 
C ふ? IWS 

C2/I9SS 

CZ - 220 QS 

C/ ??4l.s 
C2.MIBS 

CJ-/40BS 

し•.卜 

一 E -68 

' : .、りへ.- 
C 2- M 0 LS 

< ハハ 

C2-?34LS 
C:^ ?S?MS 


PROMK ~_ 
OS-9/XMOOO 
DATA PR«-t*K 

PRO-68K 
THE 礪 P V? 0 
■ - 

*I _ リフ《ル_ 

,奴 ifratn MK Ver/.O 
MUSIC PRO MKtMlW; 


熱転写カラー漢字プリンター 


CANVASM3 ークラフぐ/ク UB 

〇ークラフイ v ク VOC ? 
. . - . 
SX WWCX)W v»-f 10 

_ AHMK __ 

_ MUS «^.§ LyP *0^ O 6^ 


パソコンラック推奨_11 


BB.OOO 

15. 100 

'•00 

sa.coo 

19.100 

Voo- 

?MOO 

9.100 




12,600 

21.000 

41.000 

14,300 


•i:aoo ' 

•W __ 

31.000 _ 

"一 M 一 — 

19.100 
w 

'aoo y 

V 

M .®° . V 

ん a.son , ¥ 


V 7,500 
y 7.500 


V 29,800 

V 11,400 

V 15^00 
¥ 6,600 
¥ 0.000 
y 7, 


オムロン #MD-I200AIII. 

• N / D - I 2 FS . 

• N/D-24FP4II. 

• N/D-24FN5. 

• IVD-24FS4. 

• MD-24FS5. 

• MD-24FS7. 

• MD-24FC5. 

• MO-24FP5II. 

• MD-24FN4. 

• MD-24FJ4 

• MD-24FJ5. 

#MD-24HS. 

• MD-48HS 

S5. 


• MD -96 FS ! 
iPV - A 24 Vf 
tPV - M 24 VM 5* 

• PV - AI 2. 

• PV - M 24. 


① CZ-8PK10 (24 ピン漢字プリンタ ー 1 3 晰 ) 


①五段キヤスター付②四段キャスター付③三段キャスター付 



5 段キヤスタ-付 

キーポードが収納できる 
から、手元でマウス操作が 
ラクラクできる 
播板5段のマ〗レチに 
活用できるディスク。 

ウーン、こいつはデキル/ 

1325( H ) X 640( W ) 
x 700( D ) 

特価 ¥15,500 



4 段抑スタ-付 

どんなパソコンにも 
フレキシブルに対応/ 
使い易いデスクです。 


1245( H ) X 5 I 4( W ) 
x 600( D ) 

特価 ¥11,500 



特価 ¥8,800 


店頭ゲームソフトオール 25%off/ ビジネスソフト 25 % より特価中 


オクトラクラククレジット表 


★通價販売お申込みの ご 案内 ★ 〒144東京都大田区蒲田 4-6-7 TEL :03-3730-6271 

お屮込みはお姑でお願いします。お客様のく伐所〉く氏名〉ぐ, li 坫裉け〉及びく商品名〉をお知らせドさい。*人金確逖後ただちに齡 1 •をご送付いた u 

富士銀行三菱銀行 
久ヶ原支店蒲 田 支店 
_〇.1824 @ N 0.0278691 
株式会社億人(オクト) 


銀行振込:お近くの銀行より(電信扱い〉にて 
お振込み下さい: 

現金書留: 封筒の中に住所•氏名•商品名を 
ご記入の上当社までお送り下さい 


谷饨のく 

B 


専用お申込用紙をお送り致します 
ので、必要事項をご記入、ご捺印の上 
ご返送下さい。手続きは簡単です: 


1回 

2.06% 

3回 


5回 

4% 

10回 

5.5% 

12回 

5.5% 

15回 

8% 

18回 

10% 

20回 

\\% 

2個 

12% 

30回 

16% 

36回 

I 7 X 

48回 

72 % 

60回 

28% 






/ 




, 500 . 000 . 000 . 0001 . 000 , 000 , 000 , 00031 . 000 . 000 , 000 . 0001 . 000 . 000.000 83 
112333432233693 J312 
VYVVVVVVYVVYVVnYVVV 

価偭愐価価価価価愐価愐愐価価11¥愐価低愐 
14 料料5特 W 特特特特特特特4(9««特5: 


■店頭大恩謝セ—ル実施中//:ゲ—厶ソフト(ビジネス)新製品続々入荷中// • 


現金 I 括払ぃ 


振込先 












































































































































《計測技研》 


I- 〇データ増設 RAM ボード 

■ PIO-6BE2-2M(2MB) 

特価 ¥35,900 

■ PIO -6 BE 1 -A (imb) BPIO -6 BE 4-4 M (細) 

特価 ¥18,800 特価 ¥62,800 



通信販売のご案内 


王 


国通販 


□ 銀行振 込で申し込みの方は商品名 
及びお客様の住所•氏名•電話番号 
をお知らせ下さい。 

〔振込先〕第一勧業銀行渋谷支店 
普通 No.l 163457 ㈱ オーエーランド ■年中無休です.グ 

I r 現金;:; 留で送金されるお客様は電話番号と商品名、数量を明記じ C 同封じ r 下さ 
い。 □ク レジ 外でご購入を希望される方は申し込み用紙をお送り致しますのでご記 
入の上返送むて下さい。2〇才以上の方は、原則とじ r 保証人不要です。クレジットは 
I 〜60回払で月々5.000円よりご自由に設定できます。 


つ 0 A ランド 


OA ランド推奨ソフト 



镰 CZ -603 G-GY … 

♦ CZ -6 I 3 D-GY … 

• cz - IHbk - 

(メーカ-保証付) 

• CU -2 IHD - BK - 

(メーカー保証付) 


特価 ¥200,1 

• 特価 ¥ 79, 

特価 ¥218,000 


,000 ^ 
,000 «c 


參 CZ -8 PK 9 …… 

► CZ -8 NSI …… 

> CZ -6 BNI …… 

(パラレルポード) 

. 特価 ¥ 87,000 •KGB-X68PRK-00 … 特価 ¥ 22,000 

(メモリ&コブロ增設ポード) 


特価 ¥ 38,000 
特価 ¥113,000 

特価 ¥ 12,000 


GZ-8PK8(2 台 )… 特価 ¥ 40,000 


OA ランド今月の大沒5玉//=超八級中古品 



SHARP 認定 

PRO-SHOP 


O . A ■於ド 


( TEL ) 

03 - 


■アフターサービス万全のサボート体制 

•下取•買取は電話で見稍りしております。責任を持って下取 
リさせて頂きます。 

♦ご注文、お間合せは…,午前10時から午後7時まで 
嫌商 a のお届けは入金確 K 後、即日発送致します。 

■TE い FAX のお見積 OK// 

■低金利クレジットをご利用下さい。 


3770-8855 ►i *1 5 〜 2-14 


SHARP のことなら 
なんで $ おまかせ.ヴ 


大徳買 セール/ 安〈値切ってネ。 

お電話下さい。⑱価格をお知らせいたします。 


!流通事情により、広告表示価格は、 


;お安くなる場合がありますので、ドンドンお電話下さい。| 

^ CYBER STICK 

— n 

BCZ -8 NJ 2 

0 A ランド特価 

(定価 ¥23,800) 

► ¥18,000 


國 


* 見やすい澳字 4 桁表示// 1 
j j 情報任時代の必期品// 

■ PA - 950 0(¥ 48,000) ••.►特価 ¥38,000 I 

■ PA -8500(¥ 28,00 0) … ►特価 ¥15,000 

■ PA - 750 0(¥ 22,000) ..•►特価 ¥12,000 


Q ) CZ -8 PjQ 4:( GY ) (48 ドット/カラー対応/ハガキ可能) 
定価 ¥ 99,800 …… 特価 

( DCZ -8 PKI 0 (24 ピン漢字プリンタ - 13晰) 

定価 ¥ 97,800 …… 特価 ¥ 73,800 

③ CZ -8 PGI (24 ピンカラー漢字プリンタ -8 晰) 

定価 ¥ 130,000… 特価 ¥ 96,000 

④ CZ -8 PG 2 (24 ピンカラー漢字プリンタ H 36 桁) 

定価 ¥ 160,000… 特価 ¥ 117,800 


オム□ン MD - I 200 A III . VI 4,500 

MD -24 FP 4 II . ¥27,500 

MD -24 FP 5 II *. ¥29,800 

MD -24 FN 4. ¥28,000 

MD -24 FN 5. ¥31,300 

MD -24 FJ 4 . ¥31,300 

MD -24 FJ 5. ¥34,500 

MD -24 FS 4. V 28,500 

MD -24 FS 5. ¥34,500 

ァイワ PV - A 24 VM 5 . ¥32,500 

PV - M 24. V 28,800 

NEC COMSTAR 2424 4 . ¥28,800 

COMSTAR 2424 5 . ¥33,500 


OA ランド特選品,グ 


' 


■ IO -735 X ( 定価 ¥248,000) 

參カラーイメージ•ケーブル付 

17 _特価 ¥186,000 


① CZ -6 VTI (カラーイメージユニット) 

定価 ¥69,800 . 特価 V 52.500 

(2 CZ -8 NS 1 (カラーイメージスキャナー〉 

定価 v 88,000 . 诉« ¥138,000 

3 C 2-6 BMI ( MIDI ポード} 

定26,800 . 料® V 20.500 

④ CZ -8 NJ 2( インテリジェント•コントローラー) 

定23,800 . ««¥ 18.000 

0 DCZ -6 TU ( RGB システムチューナー〉 

定<1¥33,100 . 特優 V 25.000 

-6 CZ -64 H (增設ハードディスク) 

定価 ¥120,000 . ,僅¥ 89,000 

⑦ CZ -6 EB 1 (拡張 I 0ボックス= 4ス Q ット) 

定価 ¥88,000 . 料懾 V 66,000 

C 8 C 2-6 BP 1 (数値演算プロセッサポード) 

定® ¥ 79,800 . nmw 60,000 


クレジ ツ •卜表' • 


3 回 

3 % 

晒 

4 % 

1 咂 

5 . 5 % 

12 回 

5 . 5 % 

15 回 

8 % 

|0[〇] 

10 % 

20 回 

\\% | 

24 回 

11 . 5 % 

30 回 

15 . 5 % 

36 回 

16 % 

42 回 

20 . 5 % 

肋回 

21 % 

54 回 

26 . 5 % 

60 回 

27 % 



〒 150 東京都 渋 谷区円山町 20-4 第 5 日新ビル 1F 

a 慮 

関東エリアの送料は、1個につき¥1,000です。 

★全 商品保証 害 付。 專 門のアドメ くイザーが、お客様のニーズに対応します ^ 
★初期 不良•輸送トラプル等に迅速に対応し、即交換させていただきます> 



XBDD SUPER IHI 

0 CZ -6 O 4 C-TN + CZ -6 I 3 D-TN 
定価合計 ¥ 483,000 


© CZ -604 C-TN + GZ -606 D-TN 
定価合計 ¥ 427,800 



X6B000SUPER-HD 

① CZ -623 C - TN + CZ -6 I 3 D-TN 
定価合計 ¥633,000 


1 回 

4664)00 

12 回 

42.100 

24 回 

22.200 

36 回 

15.400 


ICZ -604 G 

特価 M 348 T0OCT 

ICZ -623 C 

特価 ! £498i0OO^ 


( DCZ -623 C - TN + CZ -606 D.TN 
定価合計 ¥577,800 


1 回 

425,000 

12 回 

38.400 

24 回 

20.300 

36 回 

14.000 


X6S00DEXPERT-II 

①〇 Z -603 C + CZ -6 I 3 D 
定価合計¥473,000 


1 回 

348,000 

12 回 

31.400 

24 回 

16.600 

36 回 

11,500 


© CZ -603 C + GZ -605 D 
定価合計¥453,000 


1 回 

333,000 

12 回 

30.100 

24 回 

15.900 

36 回 

11.000 



X6B000 EXPERTII-HD 

0 CZ -6 I 3 C + CZ -6 I 3 D 
定価合計¥ 583,000 


1 回 

TEL 下さい。 

12 回 

38.800 

24 回 

20.500 

36 回 

14,200 


② CZ -6 I 3 C + CZ -605 D 
定価合計¥563,000 


© CZ -603 C + CZ -606 D 
定価合計¥417,800 


1 回 

TEL 下さい。 

12 回 

27,800 

24 回 

14.600 

36 回 

10.100 


IGZ -603 C 

特価 ¥249^000^ 

ICZ -6 I 3 C 

特価 M44&eocr 


1 回 

414^)00 

12 回 

37.400 

24 回 

19,500 

36 回 

13.700 


( DGZ -6 I 3 C + CZ -606 D 
定価合計¥527,800 


1 回 

TEL 下さい。 

12 回 

35.100 

24 回 

18.500 

36 回 

12.800 


X68000 PROII 

0 CZ -653 C + CZ -6 I 3 D 
定価合計¥420,000 


1 回 

288,000 

12 回 

26.000 

24 回 

13,700 

36 回 

9.500 


© CZ -653 C + CZ -605 D 
定価合計¥400,000 


1 回 

273,000 

12 回 

24.700 

24 回 

13.000 

36 回 

9.000 



X68000 PRQII-HD 

0 CZ -663 C + CZ -6 I 3 D 
定価合計¥530,000 


1 回 

TEL 下さい。 

12 回 

35.200 1 

24 回 

18.600 

36 回 

12.900 1 


② CZ -663 C + CZ -605 D 
定価合計¥510,000 


© GZ -653 C + CZ -606 D 
定価合計¥364,800 


1 回 

TEL 下さい。 

12 回 

22,300 

24 回 

11.800 

36 回 

8,200 


ICZ -653 C 

特価 M28&eoor 

ICZ -6630 

特価 M39&00CT 


1 回 

TEl 下さい。 

12 回 

33.900 

24 回 

17.900 

36 回 

12,400 


③〇 Z -663 C + CZ -606 D 
定価合計¥ 474,800 


1 回 

TEI •下さい0 

12 回 

31.600 

24 回 

16.600 

36 回 

11.500 


■期間中、セットでお買い上げの方には、 (1 V ボール 2 ニュージーランド•ストーリー(ゲーム)の 
がついてきます。さらに、 d テトリスやドルアーガの塔などの入ったゲームパックもプレゼント.グ 


1 回 

355,000 

12 回 

32.100 

2 徊 

16.900 

36 回 

11,700 


1 回 

315,000 

12 回 

28.400 

24 回 

15,000 

36 回 

10.400 



■光磁気ディスク ユニット 

• CZ -6 M 01 
(定価 ¥450,000) 

特価 ¥335,000 


■SCSI ボード 

• CZ -6 BS 1 
(定価 ¥ 29,800) 

特価 ¥22,300 


■ビデオボード 

• CZ -6 BV -1 

(定価 ¥21,000) 

特価 ¥15,600 


■ SX-WINDOW 

(次世代インテリジェントソフト) 
定価¥6,800 

特価 ¥ 5,100 

■ C 2-249 GS 

fCANVAS-PR068K) 

定価 ¥29,800 

特価 ¥ 22,300 


■ CZ -245 LS 

( c - コンパイラ II > 

定価 ¥44,800 

特価 ¥ 33,500 

■ CZ -255 GS /256 GS 

(ドローグラフィックライプラリ 1/2) 
定価¥8,800 

特価 ¥ 7,000 


■ CZ -260 LS 

(X Bas to C CHECKER) 
定価 ¥9,800 

特価 ¥ 8,000 

■ CZ -219 SS 
(OS9/X 68.00 0) 

定価 ¥23,800 

特価 ¥ 23,800 


X 680(](] 用周辺機器コーナー 


モデム 


フリンタ— セツ ト コーナー 


周辺機器コーナー電話で値切ろう。 


SHARP XB 日 OCKD シリーズセットどんどん tel 下さぃ 


[ Z ] S _ : I 


§§§§§§=§§ 

7698776987 

2457957802 

VVVVVVVVVV 

通価価価愐愐偭価価! i 

特待特特特待恃特恃待 


:• 0000000000 
セ 0000000000 
□ 0000000000 
ブ 4848226260 
3579279136 

赛丨 - 

.! --¥¥¥¥¥¥¥ 


@ - iol 23401234 

iffo -ooooll- - 

と '* よ ! K 


0 





08 



■表示価格は、税別表示です。詳しくは、お電話にて、お問い合せ下さい。掲載の価格は、12月下現在です。 
































































































































































































































m 金に gs 

とにかく一度*御来店下 s い/ 


H 界一広い、ツクモパソコン本店 
> C 6 B 001 I コーナーで お客様のおいで 
S お待ちしてお〇ます// 


そこで移転に伴い古くなった 7 号店の展示品の大処分セール 
を実施します。どれも1、2台の数しかありませんので、ご了承 
くださいね。 


例】他にもありますので是非ご来店ください 0 

C 6 的00 EXPERT ( CZ - BOEC - GY ) 
(68000 PRO-HD ( CZ -662 C ) 
i ラーイメージスキ ■— ( CZ -8 NS 1) 

8ドット熱転写プリンタ ( CZ -8 PC 4- GY ) 
36桁ドットプリンタ ( CZ -8 PKB ) 

0 MB 八ードディスク 
; •の他棚ずれ品など 
F ■ルト台 ( CZ -6 ST 1 E ) 台数少 
/ IZ - 2500ランゲージシリーズソフト 


0,000^ 

4215,000^0 

,ジジジより 
.. ¥5夕仰ジより 
- ^59^00^ 

. ¥59,咖よ D 

..… ¥;,嫩より 
•… ¥ん嫩より 


名古屋、 
扎幌でも 
決算大セ 
ールを行 
つていま 
す。是非、 
ご来店下 
さい/ 




B 日 000 シ 1 j ーズ本体 


PRO II CZ -653 C 

定価 ¥285 r 0 O & 
P 闩 OII - HDCZ -663 C 

定価 ¥395 rW 
EXPERTII CZ -603 C 

定価 ¥338 t 6(» 

EXPERTII - HDCZ -613 C 

定価 ¥44 S ^0 G - 

HUPERSEU 

SUPER-HD CZ -623 C 

定価 ¥498 T 000〜 


ツクモ特価販売中./ 



1 MB 増設 RAM ボード 2 mb _ ra . ド 

( ACE / PRO シリーズ用) (消費税 別途 ¥570) 4MB 增設 RAM ポード 

ツクモ特価ヂ,ジジク 


ツクモ特価 V 彡7,戊於 
(消贄税別途 ¥1,110) 
ツクモ瀬 V ’付卯 
(消*税別途 ¥1,920) 


※計測技研のメモリーポードも取り扱っております。価格については、お尋ねください。 


ぺワーアップアイテム 


アードンール 


八ードディスク 


瞑準タイプ八ードディスク ( SASI ) 
テック IT XB40(40MB) 

ツクモ特価 V ^,扣ク (消 贄税 別途 V2.544) 
,イテック IT X6B0(80MB) 

ツクモ特価 Y タデ,れ^ (消 贄税 別途 V 2 . 994) 
3 CSI 八ードディスク 
3 CSI ポード CZ-6BS1 定価矿 29r800 
T X80S(80MB) 定価 28,000 

ツクモ特価V ダヂ,の^ (消*税別途 V 2,994〉 
T X130S(130MB) 定価 VI58,000 
ツクモ特価V f 25 , 000 、 消费税別途 v 3, 074) 
KX 68000 SUPER シリーズ以外の 機檯は 
CZ-6BS 丨 (SCSI ポード)が必要です。 


DZ-BM01 定価 V450r000 ツクモ特価販売中 
fe 光磁氕デイスクカートリツジは別売です。 (30r000 円) 
庚 X68000 SUPER シリーズ以外の機種は CZ-6BS1 
(SCSI ポー 



-ド)が必要です。 


CZ - BMQ 1 


• NWP -539 N メ^ 

光磁気<ディスクユちッ身 

• CZ -6 BS 1 1 • J 

SCSI ボード 

• SCSI ケーブル 
參光磁気ディスクカートリツジ 



ツクモ特価¥ 次於 (消費税別途 ¥3.840) 

. 定価 ¥21,000 

. 定価 ¥B9 t 8G0- 

. $価 ¥797800 


合計定価 ¥509,800 

39^000 

(消費税別途¥11, 940) 
ク レジ ット例 (42 回払•税込) 

初回¥14,274十月々VI2,300 X41 回 


■ハードウェア 

-•流メーカーイメージスキャナ |台数限定 1" 

CZ-6BV1 ビデオポード . 

CZ-6VT1 カラーイメージユニット . 

CZ-6BP1 数値演算プロセッサボード… 

■ソフトウェア 

CANVAS PRO-68K . 定価 ¥29r80O- 

Z's STAFF PRO-68K . ツクモ特価¥ダク,芝撕 消費税別途¥1 .479) 

マジックパレット . ツクモ特価¥ /ダ, (消費税別途 ¥504) 

彩 クロン Expressa68 . ツクモ特価¥ぬ*, 消費税別途 ¥2.499) 

デジタルクラフト . ツクモ特価¥5•多於%? (消 R 税別途¥1 ,014) 


開発 ツール 


• C Compiler PRO -68 K Ver 2.0 . 定価¥447800 

• SX-WINDOW . 定価 ¥6 t 800- 

• XBAS to C CHECKER PRO -68 K . 定価 ¥9 t 800 


ミュージックツール 


NEW プライス 


お手軽な MID セット A 

CM -32 L . 定価 ¥69750& 

SX -68 M . 定価 ¥ T 5 rSG(k 

Musicstudio Mu -1 Verl .4 定価 ¥ T 9 tS 0 Q 、 


ックモ特価 

^^rOOO 


お手軽な MIDI セット B 

CM - B 4 . 定価 ¥ T 29 t 000- 

SX -6 BM . 定価 ¥ T 9 r 8 G 0~ 

Musicstudio Mu -1 Ver 1.4 定価 ¥ t 978 00- 


ックモ特価 

^/ S^fOOO 


嵌「1^此比51:11出〇 PR 068 K Ve 「2.0 又は 「Music PR 068 K 」 く MIDI 〉 のソフ 
卜の場合には、¥9,500プラスになります0また、これらのソフトウェア 
がバージョンアップにより価格が変更になった場合には変更となります。 


追加 

オプション 

機器 


はなうたくん 

CP -40 

定価 ¥33 r 000 



MIDI キーボード 

コントロー ラー 

PC -200 

定価 ¥ 367000 


情報 ツール 


電子手帳シリーズ 

ハイパー 電子システム手帳 

PA -9500 1^^ 

定価 ¥48 tOGG 

•表計算カード PA -9 C 1 



••…定価 ¥16 tGQG 
ド PA -9 C 90 (64Kbyte) 定価 ¥ 1 4 T G 0 Q 
PA -9 C 91 (128Kbyte) 定価 ¥20 rGQO 


PA - 明的. 


CE-300L 通信ケーブル. 


電子手帳対応ソフト 
CYBER NOTE PRO-6BK - 

Stationery PRO-BBK . 


• ツクモ特価¥艺ダ,扣ジ 
(消費税別途 ¥744) 
… ツクモ特価¥ぞ,50ク 
(消費税別途 ¥75) 


定価 ¥ I 9,80 Q 
定価 ¥ T 4,8 0 Q 


ツクモク□一八ルカー F 

太/好/評/入/会/者/募/集 

国内•外で大活躍/ 

使って安心、持ってて便利/ック 
モグロー バルカー ドはジャックス • 
VISA 、 セントラル•マスターとの提 
携 カードです 〇 ツクモ各店でのお 
買物がらくらくできるうえに、国内 
はもとより海外でのショッピングも 
0 K / 

(03)3251-9898 又は各店で/ 

18 


生以 C3 

で上 n 3 
もな .: 
〇ら 
K 


JE 1 

, ^ar • 


7u^?5bla*n0120"377*999 


商品についてのお問い合せは 
各店店頭又は 

S 03(3251)9911 へ 




秋 葉 原 


表示価格には消費税は含まれておりません。 


クレジット払い 


月々 Y 3.000以上の均等払いも 
頭金なし、夏•冬ボーナス2回 
払いも受付中/ 


現金書留払い 


〒101-91東京都千代田区神田 
郵便局私 窨箱丨 35号 

ツクモ通販センター Oh/X 係 


# AM 10:15 
〜 PM 7:00 
<§毎週木曜日 
と13日 d 


カード払い 

通信販売ての 鲫 利用カート、ツクモグ 
ローパルカード、 VIP カード、セントラ 
ル、ジャックス ※御 本人禅より電話て 
通信明売部へお申し込み下さい 3 


全国代金引吉換え配達 

お申し込みは 003-3251-9911 へ 
お 電話 I 本/ 

配速 日の指定もてきます。 


銀行振込払い 


事前に》でお届け先をご連終下さい 0 
富士銀行神田支店(苷) No. 894047 


ツクモデンキ 


各種 U —ス払い 


くわしくは各店にお問い合せ 


下さい。ケースに合わせてご 


相談にのらせて頂きます。 


ツクモは「ス -/ H ( PRO SHOP 」 です。 

九十九電麵 MB 

亍 101-91 東京都千代田区神田郵便局私害箱135号 

★商品のこ注文は在庫確認の上お願いします。 


ツクモパソコン本店 O 03-3253-5599 (徂当/荒并 〉 


便利で 安心な通價販売 

ツク モ通販 センター S 03-3251-9911 


■ツ クモ A V / カメラ 醸 O 03-3254-3 的 9 ( 徂当/川名) 
■ツ クモ ニューセンター 店 003 -3251-0987( 徂当/福地) 
■ツ クモ 5 号店 S 03-3251-0531( 徂当/森) 
■名 古屨 1 号店 Q 052-2 B 3-1 B 55( 徂当/吉高〉 
■名 古腥 2 号店过 052-251-3399( 徂当/横山) 
■ツ クモ札 帳 S 011-241-22 昍 (祖当/田口) 










































































































旭川店 

广 oibb- 25-7771 

旭川市4条8丁目ツジビル 


■営集時間11:00〜19:00 


C2-653C » « 

C 2.6050 9ステレれ r :- 卜 I 

上:籌1 . 

t 鹰番 パーフ x クト 

TETRIS 

1 重 ft の野9柏00辟雄伝 

T 一 ,i — - 


V 285.000 
VII 5.000 

V 6.800 

V 6.800 

V 6.800 

V 9.800 




t 

C 

f 


1 


り 



札幌44及店 \ 



ron- 251-5315 i 


礼幌市中央区南2条西2 丁目 
ブロックビノレ 6 F 

■営業時間11:00〜19:30 


豊 


池袋本店 

^1800( 


XBBOOQEXPERTI 

K SX 66000 


-睿秘こんたアートの ttlf 

XS 68000 


J 5.000 

M . B 00 

^•ビス 


CZ .603 Ci 料 V 338.000 

C 2 HB 0 旧 9スチレォ社—力”テレ匕 VI )5.000 

リップスティックアドベンチヤー Y 6.800 

ウァリス r Y 9.800 

ygAii . Y 7 

ハ•ワ フル麻雀2 V 7.800 

住友 3 M 5 2 HD フランクディスケット Y 18.000 
御希3ゲームソフト . サービス 


CZ .604 C , • 

CZ •田 2 D 

住友 3 M 2 HD ブランクティスケ外 
鬌罨 a ケ-ムソフ r 


c 


8.000 
5.000 
8.000 
_ビス 


X6BQ00EXPERT1 

XS 6 8000 


新 D 


f MHI 1 的- rt « MI ま ? Ml | 

WQOOO 

I CZ -604 C ,*, 

CZ -605 D 


X68000EXPERTII : 

SS 6 B 000 


A 


C 2-603 C V 338.000 

CZ -604 D スチレ〇トポ?しス7い1 V 94.800 
住友 3 M 5 2 H 0_/ ランクディスケット V 18.000 

鹤#■ゲームソフト サービス 


ti 友 3 M 2 HD フランクディスケット 
M 望ケ-ム ソフト 


jmr 1 


C 2 603 C ? t Y 338.000 

CZ 606 D • ¥ 79.800 

往友 3 M 5 2 HD 7 ランクティスケット Y 18.000 


•い. り m り-パ、スだつ, •い Xbaooovw ) な* ^ アオヤマかオトク 

X•丨を鲫講入いたたいたお*椹に«り, CZ 8PC5( 定94.800〕を 
す金•の方は会!!ダイアル にて Call/ 

たいたお!;蠊 に «リ .7 スキーターホス r ノク蚤峙 •1V2.98C、 XE.IPRO を栲通V 

800 にて CZ .8 NJ 2; インテリシ i ントコン ⑴ -ラ): v 23.80 0) をか iVl 6.900にて 


^7«足ゎ爾两 J 2 ット 

1168000 


二 含わせてお 申 I 込み T さい 


与^:賓演中てす各店 X 68000 コーナーか常投されておリ1す 

S 周辺枝 



CZI 


•603 CCY ?cit 
CZ 6030 GY , 

ステレオスピーカー 

ti 友 3 M 2 HD フランクティス ケント 

御 * a ケー ムソフト 


クレー傾$お11羅せ ッ 


SY 68000 


CZ 652 C 6 Y Tti 
CZ .6 MDGY ’ 

住 3 C 3 M 2 HD プランクディスケル 
御#望ケ-ムソ乃 


チタンカラ ー t 入: sCMf 曹蕙買 


H 68000 


の蓽仑て (》 金 B どこでも出罹サービスかうかかい i す万一の蠓 
い.•お窨褊名齣と電 tt 働娉だけ T 亭鶊1>は兜了 


ジッ I 


•ゆつく 〇、お支払いは日力月先から 




MUSIC PRO 68 K V 18 800峰明食 Htt . OS 9 X 6 B 000 
"? 9.800 峰 V ??,300 Hurnar.GBK vur 2 0 V 9 BO 0_ l » 金 
- A の til VI ? 800 螓1«金”<1 パ STAFF PRO 56 k 
19 800 峰 « 倉, I 懂 C TRACE V 68 000 峰 V 3 a 000 K « rr , 
./^ V 6800 C ^ V 49 600 C .« n .4 i PRO 68 K ^ a -^ 


こ淵 


CZ .604 Cr _ ? •, 

C 2 606011 

住友 3 M 5 2 H 0 プランクティスケット 

»* a ゲームソフト 





t 


[ 


>2 
: J 
•I 


1 

Ki 

, 


月 




f 


i 


琴 

:^yrT 


PAwAt r IS ' #¥2fl 


•♦現金特価 


rb 時现畫: 


フ EXPERTII 


A©YAMi 

OF YO 


R ^AC 


パ-ツセット 


緬斬お蘭, •ノフト G ツト 


SJ 68000 <-^} 


ナイトアームズ 
サイパリオン 
グラナダ 

きゃんきゃんパニ- 

スターシップランテフー 


V 9.800 
¥9.700 
Y 8.800 
V 8.800 
Y 6.800 
Y 8.800 


安すざて表示て办 i せん 
クレシントてもゎ•申し込み出来 iT 


ステレオ MIDI 8 灣 t ! ノ 


SS 680002 


CZ -68 MI •• - 
CM - 321 a - ラ --”.,: H * 

MA.12AVX2. .i 
MUSIC PR 0 MI 0 I -n - 

ソングライプラリ . -►« 


瓜 B 00 

)9 ( iii () 


If 26.81 
V 69.0( 
VZ 8.000 
V 28.800 
V 8.800 


_ V 6.9 C 0 

VI 2.8 C 0 


射 


ステレ:^ OIMS ルヴ•ル: 7 ランク丨 

U 68000 パ 


ント.?-少フ?1メ?丨 

| パ-ツセット 戈 

SX -68 M Y 19 .I 

MT -32 V 64. 

MAI 2 AVx 2 V 28.000 

CFI 0 1 •* V 22.000 

PC -200 » 丁 ¥36.000 


19.800 

)4.000 


ソンクライブラリ フ a 身—一 
お貢上げの X 68000 と含せて*利用いただけ1す 


9.800 

8.800 


カラークラフインク t 2 ント | 

SS 6 Q 000: 4 

GT .1000 • ¥79.800 

二5220 ケーフル: y 7.500 

Z s STAFF-PRO V 58.000 

I_ V 5.300- 

I V 9.80 0- 


• YI 03 .的0 

100 - :4:' 

ボなしし 

MKJ - 12回 

ホなし傾なし 


SUPER HD 


X -68000 SUPER HD : 卜 ] 

sxs 日000 Q I 

CZ -623 Cn - '•- MHODr »5« )1498.000 

CZ .606 Di » » 79.800 

住友 3 M 2 H 0? ランクデ < スケット K 18.000 

«* a ケームソフト サービス 



SHARP 


X68000 SUPER HD | n 

SS 6 B 000 1 

CZ -623 Ctii ? •. th : vHDo ^« If 498.000 

CZ -6020 bi 1 99.800 

li «3 M 2 HQ ^ ランク ディスケット 1 18.000 

衡棄 2 ケーム •ノ乃 サービス 



V 10.300- 

TVL .•爾なし 

V 15.503-,. 

■r V - !爾なし 


V I :ド IX )*# w 金 


t - 力付 6030 ティスフレー)… 


•• Y 9 i />0_«#大_« 


ワールドインアオヤマにおまかせ下さ 


「返品 • 交換について 1 


返品•交換は商品到着後3日以 
内にお願いいたします。 


[ 電話でのご注文の場合 1 

日か •か 4 im こ4り,に]/)•つ , If 

r 03-3987-7771 


厂クレジットご利用のこ 

|i はお電話でか/ 


<返品•交換をお受けする場合〉 


•不良品(キズ•汚 W ) が届いた塌合 
•ご注文商品と a う商品が屈いた壤合 
上 k の塌合、返送料は当社が負担いた 
します.たたしお客«の奉由(注文ミス 
などによる g 品の場合、返送料はお客 
椹の負担となりますのでご了承下さい 
<次の!*合返品•交換はお受けできま 
せんのでご注意下さい,〉 

I 1度ご使用になった商品 2お客枝 
の資任でキズや汚れが生じた商品 
3全ソフト商品 


お霣 K 番号はおかけ閜遒いのないようにお 
願いします。 


•いたた,<したら . i 
さ: I とし aa とお*”か不5 
いたことかすぺて觭肩萼!" 
(■スタッフがわ•役に立ちます 


部 V 011-251-6771 
i 5? LV 092-672-7771 


@ と*の 


お好きな時間にお章話を./ 


テしフオム 

シ3ツビニ7 


ご«含に含 h せて自由にお5 
全|»を议定てさ i す 
手玟さはとて tw 摩そしてス 
tb ろん手 ttf4UI5 低金辱0 
お支Iムぃ t 月々I 000円か*^ 
お?等に彳史いやすくなったァ: n 
シットです 


舀: 


電話受付時間 


|月嚷日一金權日 10:30-20:30 


1 生の味方キャンパスク t 

It 


| 土•日嚼日•祭日 10:30-19:00 


「日中ご不在がちな方はお振込] r クレジットカードも ok / 1 


昼間ご不在がちの方、お息ぎの方は》 
行振込が便利です., 

お申し込みからお届けまで、お時間をと 
りません> 

►銀行振込みの場合 


取引18行 

仕友 a 行池袋支店 

口座番号 

蕾 A 1065392 

口座名 

蠊式金社ワールト•インアオヤマ 


クレジットカードをお持ちの方お支払は 
1回払いです。お申し込みの BU 
1カード名2会 UNa 3有効期限をご 
連》下さい。 

カートてお申し込みの蠓食. 

お電 U にて h 間い合せ T ? い 

! サポート 


キ-ンハスクレンノトのフクか5 
かリ1した«»高〗0万円 i て G 
てさ手的さもその罎で即 
6«々丨000円からと.とって I 
ァォャ 7 UMr さんを応!金し If 


0 


支払いはナント 84E 


H 支仏い U 少なく、ゆっくりと 9- 
才なら i ft 8431て自由に!: 
ホーナス《« V潜やしたリ咸らした* J 
んホーナスー括や二?い 


] 0 


うゆうお支私いは8ケ 


返品•交換についてのお間い合わせは 

お客様相談室 03-987-7795 


く万一のときにも完全バックアップ〉 
万一の初期不良があった壜合で t 当社 
では万全の体制でお客樺をフォ a —技 
します 


议-い續螬は今すく议しい/ 
たけと以莳の a —ンか枝って v 
极雖してか*〇始めたい 
こいう方にお助め 
8ャ月先; t てならいつ始めても 
二れな b とっても安心てすね 



6袋店ソフト店池袋シヨ H トム福岡店 


^03-3989-1171 广的39的-7771广的!!-716-7】 


島区柬池袋 1-28-6 

ールシティビル 2F 

営業時間11:00〜19:〇〇 


豊島区東池袋 1-27-12 明治生命 
池袋ビル 9 F •首都高速道路側 
■営業時間11:〇〇〜19:00 


指岡市中央区渡辺通り 4-9-25 
ユーテックプラザ 4 F •地下鉄天神 4 R 

■営業時間11:00〜 19:3 C 


平成3年1月1日より東京の局番か4桁になり 5 m こ3かつきました 



CffSCTMB 

V 6.700 ^ 

ぞ V :つ二 :'^L 

V 8.000- • >: 

:ぞなし HIV . 

VI 2.000 - 

TV ?] jO : す八 

VM 7.300,十: 

if vr . X : ,ル“ 


li «3 M 5 2 HD フランクチイスケット l 18.000 

«* a ケームソフト サーヒス 


X68000EXPERTI | 

SY 68000 


新 L 


コース 


: ZB 53 C ! 本 《 y 285.000 

^•6050 VII 5.000 

主 X 3 IB 2 H 0 ブランクデイスケット.! f 18.000 

_#* ゲームソフト サービス 


X6BQQQPRCII I 

S 68000 


: Z-653C f« V285.000 

: Z-6020 - y 99.800 

£X3M5 2HQ7 ランクチィスケット Y 18.000 

蒙*2ケームソフト サーヒス 


AOYAMA だからオトク 


SHARP 






X 68000 お買上げの 1 
お客様へ 


V 


令1却出張サホート* 

私共にて::堝入いたたいた 

XS 6 Q 000.: 

全国出張サホートかうけられます-. 


X 68000 PRQU I 

SS 68000 


G 


BQXBBQHEB 9 P 

I V 8.300 - J ,.: :«v 

I VI 5.200 へ,1 


6.7001/: C 

お*けいた l 


•以前 当社にて X 68000 及び 
大均 f 5 にてお届けいたし J 
• X 68000 H : パてお 貢い 上げいた 

• CTRACE を衿僅 V 39 

;けいた UT 御主文の 

X 68000 をはしめソフト&用辺«11»は、当 U ; 也袋店 j し料:: 

X 6已00□ソフト! 

SCSIK - KC 2 6 BSI ) r Bf -6| 

- JfiT :-« lO )?- SI 68 M . -*V 15 300 U 61 


CZ-653C ! •« V 285.000 

CZ-6060 - 1 79.800 

住友 3M5 2HQ? ランクディスケット V 13.000 

11*2 ゲ-ムソフ )■ . サービス 


…- .....f • ** y 249.800 



バソコン A®tr ント(ソフト C 一みのる2( ¥12.800) ♦モテム MDMF P5ll?400Jn モテム (1M2 80 O)〕_¥42.800 A«t? ント:ノフトX 1 
C6-300L(*3 500 ノ,サイハーノート MlC(W9J00> ♦•子翏«私 8W0(«S000>)_¥38.600 *CU MHD: スチレォス t-mt: 卜 f パ — ,ス:> 


-の 9八一トサーヒス 

実績のメンテナンス/完全バックアップシステム 


G 界一醤 の スーパーク レジット 
S 生の味方、キャンパスクレジ t 
ますますワイドに。 

0 支払いはナント/84回ま7 
E 1 うゆうお支払ぃは 8 ヶ月先か 
サポート 

0 —のと杏ち完全バックア•」 

会興•保険 

□先 雄の" CLUB 246"。 
D ンシュアランス•サーヒ 

0 —ンとお得な下取りシスう 

—•ンョッブ..- 

S 鼸 - のサ - ビス舡、触れて 、 i 

回 EST SHOPS BEST SERVIS 

サービス&ポリシー 

El —ンとお得な下取りシスラ 


• 配送日指定 OK * 土•日配送 OK • 札幌 PAX に霣取専鬥ショップ OPEN • 奪鬥スタッフが常時待機*中古パソコン 
4ヶ月間保証 • FAX 見相りサービス•もちろんクレジットカードも使えます*カード払いでキヤッシュレス 



札帳店 
^ on -25 M 777 

礼幌市中央区南2条西3 丁目 
リンク ェギ ビル 3 F 

■営業時間丨1:00〜19:30 


ワールドインアオヤマのコンセフトシヨッフ 

參 rami M « ms となり^ z ひ x 前 


H 68000 PRO II 111680 OC 


: XBSOOOPBOI | 

SJ 6 Q 000 


X68000PRQH 


WG 8000 


CZ -6 S 3 C ^ 
CZ . 6040 
C 2 aJ 2 _ 

ナイト アーム 
サンダープレ 


V 285.000 

V 94.800 

,ロー • V 23.800 

V 9.700 

V 9.500 

スーパーハングオン . V 7.000 

バック マンア V 7.800 

ジ x ノサイド 18.800 

ヴァリス I Y 9.800 

tt 友31152 HOT * ランクヂィスケット Y 18.000 

舞# B ケー ム ソフト サービス 


_X680(X)PRO|_ j 

SS 6800〇 


CZ -6 MCTN ,” 

CZ -6061 D 
CZ -8 NJ 2 -- 

住友 3 M 52 HD 7 ランクディスケル 
壽昜3ゲームソフト . 


V34a000 

V 79.800 

V 231800 

v iaooo 

サービス 


V 8.000-v 

TV . :れ 1- 

V 12.000” こ . 

::V 

VI7.300 V . 1 

:. 作〜し 


SS 6 B 000 

CZ -653 C 1 1» 

CZ 6040 

御希 a ゲームソフト 


新 E 

コ I 


| X68QOOPRO_n _| 

lYeedoo 

CZ .652 C 8 K " 

CZ -6 D 2 DBK • 一”—テレ c 
住友 3 M 52 HD ^ ランクティスケント • V ia 000 

獨焉2ゲ-ムソフト ^rhi:rr^ ¥サービス 


X6B00QEXPERT1 

1166000 m 

CZ.M3CV33 
CZ-6050 • , • レ,ス t -mt チい ¥11 

住灰 3M52H07 • ランクディスケット Y I 
卿 # «ゲームソフト サ 



: 〇〇 


•パソコンのセオリーが体験できる。•パソコンだけのスペース 0 

池雄本! EOPEN / 

vm 


Smjtutei 

CHiAlrvi L,t STOm 

TOKYU HA 

索:急ハンズ泔 

CtMLUX 


1 AMOS 

東急ハンズ池袋店となり 


ZY 前 



お客様相談室 

^03-3987-7 795すでにご注文いた 

だいているお届け時間(時期)やメンテナンス、 その他の 
お問い合わせは右記へお電栝下さい。 

























































































































































































































































































■ FM-TOWNS 版 ■ PC-S801 VIVI21 以麯 U V51 以味各 ¥9,1300 ( 雛 

.,在.: PC . 98 DO 及7.卩(^ 8 〇作聞 21 >\/阽 11 /(^ノ1^ 21 /(^ 11 ても-ケ,今 ( 4で_ますが助作スヒ7ドダ連くなります 

6. LICBNSED"THR9^G|h AN 'AFPIL'IATION WITH ER lNTfRNAT(f)K(^Ll..t.' j99p.VtGTG>R MUS|.QAi INDUQTBjE?, INC 







































冒 i t e m 

株式会社ア < テ /j 

本社/〒251神奈川県藤沢市南藤沢 8-1-202 

TE し 0466-27-1 668代) FAX.0466-27-2800 
東京ショールーム/〒】05東京都港区新橋 4-31-7 中村ビル 7F 
TEL .03-3434-41 71 FAX .03-5472-5315 


■平均アクセスタイム 23 ms , 又バッファサイズ、 32 K バイトを装備 
満足のいく高速性能を提供 

■パーソナルには余裕の 40 M バイトの記憶容量更に増設用 
HXD 042 を付加することにより最大 80 M バイトまでのディスクシ 
ステムが利用可能 

■Human 68 K ( Ver 1.00 以上)、 OS 9 対応既存の多くのソフト 
ウェアがそのまま利用可能 

■交替セクタをユーザー領域から独立しかも Format ブログラム 
により自動実行 

■切電時のオートパーキングロックを採用不意な衝擊に対しても 
磁気面を保護 
■高品質、低価格を実現 

HXD 040: Xsto 「40/ l 台目用外付モデル ¥118,000 

( X 68000/ ACE / EXPERT / PRO 用) 

HXD 042: Xsto 「40/2 台目増設用外付モテル……¥128,000 

_0, ACE<HD> EXPERKHD) PR0<HD) HXD040 又 ttHXDMO の場投用 ) 

HXD 140: Xstor 40 /内葳用モデル ¥9日,000 

•テータ転送速度/ 1.5MB/S •インターフェース/ SCSI (シンクルユーサ) 
• 交替処理/ FORMAT コマントによるセクタ単位の自動交替処理•外 
形寸法/ 35HX155WX313Dmm(HXD040/HXD042) ハ 35HX155WX 
41Dmm(HXD140)* 重量/約 2.5kg(HXD040/HXD042)/! 城 00g(HX 
D140) 

詳しいカタロクが必要な方は本社までご請求下さい 
•:•内蔵用モデルの対応機種については、お問合せ下さい,. 

















•ガイアの牙 




1990 

Mm inn i/ifit 


COMMAND 

齡る 


を引 《 り、敝、た! 

が v その時ちらりとガイの旭の中の宝 


グラディウスに続け!今月も Xlturbo 用同 
人ソフトだ 0 紹介するのは Moon Light Magic 
による電脳絵本といった感じの SF アドベンチ 
ヤーゲーム。 5"2 D 2 枚組のボリュームでお届 
けする。 

先月はお休みしたが,12月号で紹介したX 
lturbo 版グラディウスの反響はなかなか凄 
かった(当然か?)。 

その後,編集室に現れた横内君,初めて見 
たという X68000 版グラディウスではとまど 
いながらもいきなり2周目の最終面に突入し 
てしまうあたりはさすがといえる。横内君も 
いまは受験生。今後の展開に期待したい。 

さて,今回紹介するのは 「Moon Light 
Magic」 による Xlturbo 用 ( 2ドライブ要) 
の SF ア ドベンチ ヤーゲーム だ0 

宇宙船の事故に巻き込まれた主人公フェリ 
サと謎の男ガイの物語。唐突に事故直後から 
始まり一気にラストシーンまで突っ走る。シ 
ナリオはストーリーに依存するため基本的に 
一本道の構造となっている。コマンド選択式 
ということもあり,ふつうにやっていけば絶 
対にいきづまることはないだろう。決して単 
調な展開ではない。かなり大胆に話が進んで 
いくのだが,途中の枝葉が少ないので展開が 
さらに早く感じる。 

全体に コマンド に対する キヤ ラク ターの レ 
スポンスがいい。変に SF とかストーリー重 
視というのでなく娯楽作品に徹しているのが 
成功しているといえるだろう。 

グラフィックは見てのとおり,枚数もかな 
り多い部類に入るだろう。音楽も気合いが入 
っている。オリジナル曲13曲が OPM 版と PS 


G 版で用意されており,どれもかなりがんば 
っている。ミュージックモードもあるぞ。 

特に後半はカット割りが細かい。その際, 
グラフイック表示のためのデイスクアクセス 
が若干長めに思える (5 秒弱)。しかし,デ 
イスクアクセス中でもちゃんと音楽演奏して 
いることを思えば,かなり健闘しているとい 
えるだろう。 Xlturbo 専用と銘打つだけは 
あるということか 0 

全体に作り惯れた感じで安定感がある作品 
だ。__ 

_入手方法_ 

価格は送料込み1,200円。購入希望の方は例 
によって, 


XI特集というわけではないのだが,来月 
もX1関係のゲ T •ムを紹介する予定。キーワ 
ードは 「Xlturbo Z 専用」だ0 


〒273-01 

千葉県鎌ケ谷市鎌ケ谷 1-12-37 稲田和明 


まで封書で問い合わせてほしい。 

なお,売買に関する問い合わせやトラブル 
に,編集室では対応できないので注意してほ 
しい0 


1) 申し込み内容を書いた手紙 

2) 料金分の無記名の郵便小為替 

3) 返送先を書いた宛名シール 
を用意し, 


THE USER'S WORKS 25 










































1990 年度 



HIE IF IE ¥ 

l ノ I ミ l ネ l _ l 卜 I 作 I 品 I 発 I 表 I 







1 的0¢度のゲームソフトの傾向と対策 


選択 iifi 募部門 


さあ。さあさあ。来ましたよ,これが〇 GAME OF TH 
E YEAR のノミネート発表が。見てください,ずらり揃っ 
た顔ぶれを0どれも,こいつを抜きにしちゃ今年のゲーム 
界を語れないぜ,という強豪ばかり。確かにどれも人気が 
あるし,優劣なんてつけられないかもしれない。しかし,’90 
年のゲームをきっちり締め括ってこそ,これからのゲーム 
が楽しみになろうというもの。ここはあえて「オレはこい 
つを推すぜっ j という読者の皆さんの声で10年のベスト 
ゲームを決め,頭をなでてやろうじゃないですか。 

で,この GAME OF THE YEAR ですが,今年から大き 
く変わりました。各賞が整理されてご覧のとおり。あやや, 
ちょっと寂しいんじゃないの,という気もしますが,みん 
なで決めるものはキッチリ決めて,あとは独断と偏見たっ 
3、°りの「勝手に GAME OF THE YEAR 」 て*盛り上がろう 
というコンセプトなのです。今年はスタッフの乱入も予想 
されますので,それに負けない気合いの入ったハガキをお 
待ちしております,ハイ。 

そしてノミネートの選考方法0 Oh ! X ゲーム大賞につい 
ては後出のチャートの上位から選び出し (1 989 年度以前の 
作品は除外),さらに1 990年12月号掲載の作品の中から上 
位に入る実力があると思われるものを考慮しました。ほか 
のノミネートに関しては従来どおりの推薦です。しかしそこ 
はそれ , GAME OF THE YEAR だからして乱入投票もな 
んでもアリ。異議のある方は遠慮なくかかってらっしゃい。 

さらに,今年から皆さんにとってのゲームライフがどう 
だったか,’90年を振り返ってのハガキを募集したいと思 
います〇「春の新作,あれとこれで迷ったけどこっちにしち 
まったぜ!」とか「これを買ったとたんにこのソフトが発 
売決定して〈やしかったっ!」という声を全国に轟かせて 
やるという方,ぜひふるってご応募ください。のどから手 
を出してお待ちしております。おえ。 

さあ能書きはここまでだ0とにもかくにも君のハガキが 
なけりゃ始まらない 。 GAME OF THE YEAR の栄冠を手 
にするのは誰か!? 

決めるのは,君だつ!! 


OhlX ゲーム大賞 

GAME OF THE YEAR の大黒柱ともいえる 
のがこの Oh!X ゲー厶大賞です。 ’90 年のゲ 
—ムシーンをもっとも娠わし,ゲーマー達 
の心を熱くさせたゲームに贈られる,よ一 
するに「とにかくあんたがいちばん偉かっ 
た!」賞なわけ。この賞を取った強者こ 
そ,30年を象徴するにふさわしいゲーム 
なのです。 

しかし,今年は「これが強かった」と単 
純には括れないほどゲームの多様化 • 複雑 
化が進んだのもまた事実。ノミネート作品 
もそれを表すように多種多様な性格のソフ 
卜が揃っています。どれも「今年の思い出 
のゲーム」として支持する人がいそうなだ 
けに,どれが大賞を取るかはひとえに熱心 
なフアンの多さにかかっているという感じ 



もしますね。 



ダンジョン • マスター ( X 6 8 000) 

ポピユラス ( X 68000) 

ソーサリアン(含シナリオ集)( XI ) 
ワンダラーズ•フロム•イース ( X 88000) 
スーパーハングオン ( X 88000) 

シムシティ ー ( X 6 8 000) 

ラグーン ( X 68000) 

グラナダ ( X 68000) 

三国志 II ( X 1/ X 6800 0) 

メタルサイト ( X 68000) 

アルガーナ ( XI ) 

バブルボブル ( X 6800 D ) 

天下統一 ( X 68000) 

ナイトアームズ ( X 68000) 

ナイアス ( X 88000) 



26 Oh ! X 1991.2. 
































































グラフィック賞 


X 68000 はずばぬけたグラフィックパワー 
があるだけに,ソフト ハウス 間のグラフィ 
ックに関する力量の差が表れやすいという 
ことができます。そんな厳しい環境のなか 
で,グラフィックに関して優れた美的セン 
スと演出のテクニックを発揮していたと誰 
もが認めることのできるものがこれら6作 
品です。どれも単に綺麗に描かれていると 
いうだけでなく,キャラ同士の対決や,シ 
ナリオと連動した演出など,画面をうまく 
使うということに関しては,ほかにはないな 
にかを持っているものばかりです。 


• 機甲師団 ( X 6 B 000) 

• グラナダ ( X 6 B 000) 

• ナイト アーム ズ 
( X 68000) 

• 闓の血族(前 • 完結 
編) ( X 68000) 

• ラグーン ( X 88000) 

• ワンダラーズ • フロ 
ム•イース ( X 68000) 




音楽賞 


ゲームを盛り上げる手段としてすっかり 
定着した音楽ですが,今年の大きな特徴と 
しては Ml DI 対応が進んだことが挙げられる 
でしよう。特にモトスのように3種類の音 
源に対応するほど力を入れた作品も登場し, 
MIDI ポードはゲーマーの間でも必需品とな 
りつつあります。 

また,単に BGM としてだけではなく,シ 
ナリオ • 映像とシンクロした音響効果とし 
て使いこなした作品が出てきたことも今年 
の特徴のひとつで,そういった作品への評 
価がどうなるか注目されます。 


• グラナダ ( X 68000) 

• ナイトアーム ズ ( X 68000) 

• メタルサイト ( XB 800 0) 

•モトス ( X 88000) 

• 闇の血族(前 • 完結編) ( X 68000) 
• ラダーン ( X 68000) 


ブロクラミンク技術賞 


以前の「特殊演出部門賞」に代わって設 
置されたのがこの賞です。単にプレイヤー 
への アピール度が高いということのみなら 
ず,高い技術力でマシンの限界を引っぱ 
り上げたゲームに対して贈られます。 

ノミネート作品を見ると,画面関係のテ 
クニックに目がいきがちという気もします 
が,それを差し引いてもラスタースクロー 
ルな どのテクニックが X 68000 のゲームに 
与えた影響は大きいものがありました。 

また,アルガーナの 5 重スクロール はま 
さに圧巻。これが究極という XI のテクニッ 
クを見せてく れたことも 見逃せません。 



ゲーム デザイン賞 

今年のゲーム界が受けたもっとも大きな 
衝擎が,このゲームデザイン面でしよう。 
いうまでもなく海外ソフトの登場によるも 
のです。 

海外の3作品はいずれもジャンル分けが 
通用しないほどのオリジナリティを持って, 
おり,似たもの同士の多い日本のゲーム界 
ではいっそう熱烈なゲーマーの支持をもっ 
て迎えられました。 

一方,日本でもリアルタイムのシミュレ 
ーシヨンという独自のスタイルを構築した 
機甲師団など,大技とはいかないまでも光 
るものを持つゲームが登場しています。 





• アルガーナ( XI ) 

• グラナダ ( X 68000) 

• スーパーハングオン ( X 68000) 
• ナイアス ( X 68000) 

• ナイトアームズ ( X 68000) 

• メタルサイト ( X 68000) 



自由]}&募部門 


•機甲師団 ( X 68000) 

• シムシティー 
( X 68000) 

• 大航海時代( XI ) 

• ダンジヨン•マスター 
( X 68000) 

• 天下統一 ( X 68000) 

• ポビユラス 



主演演キャラクター賞: 

去年はテトリスの直線ブロックとサ 
イバースティックという,フセインも 
ビックリの結果になったこの賞,今年 
もみんなの思い入れを尊重するという 
ことで,あえてノミネートはしません 
でした。あなたのこの丨年のゲーム 
ライフで,忘れられないキャラクター 
に清き一票を投じてあげてください。 


麵ナ脱線ゲーム賞 

せっかく楽しみにしていたのに,いざやってみ 
ると「はぐ一」とタメ息のでてしまう,いわゆる 
「〇〇 ゲー」,そう,あのアイツに対する叫びを誌 
上で発散させてやろうじやないかというのがこの 
賞です。ただし,グチはだめですよ。他人を楽し 
ませることのできるハガキに限ります。また,「み 
んなは嫌いだろうけど,ぼくはここがいいから好 
きなんだ」というハガキも受け付けてますよん。 


その他自由■部門賞 

あとは読者のみなさんのセンスに任せ 
た自由応募部門赏。もうなんでもアリ。 
面白ければ通します。ちょっと’90年の 
ことならこれはいわせてくれということ 
があれば,迷わずこのコーナーにあてて 
送りましょう。思わず鼻からコーヒーを 
嗅いてじまうようなムチャクチャなハガ 
キを,スペースを空けて待っております。 


GAME OF THE YEAR 27 


































グラフで見る TCP 10 


:> 


ここでは上位10タイトルのゲームが,この1年間の TOP 10 の中でどのような動きを見せてい 
たかを,グラフつきで紹介します。コンスタントに人気を得ているもの,また月によっては票 
が得られなかったものなど,タイプはさまざま。改めて見直すとけつこ5面白いもんですね。 



登場してすぐに I 
位を キー プ。みんな 
が ゲームを クリァす 
る頃にランクを落と 
し,さらにシムシテ 
ィーの登場によって 
票を奪われたが,最 
近またカオスの逆襲 
のニュースにつれて 
持ち直した。 


2位 ボピュラス 



意外に人気の立ち 
上がりが鈍かったゲ 
ーム。 I 位になった 
ときはかなりのブッ 
チギリ状態が続いた 
が,最近になって鎮 
静イ匕してきた。プロ 
ミストランドの発売 
がもう少しあとだっ 
たら……。 


ベテランらしく成 
績にムラがない。夏 
場にパテるところま 


でベテランらしいが, 
涼しくなると「ここ 


まで来たらあとは I 
位だ」の声のもとに 
再びパワーを取り戻 
した。さすがは大御 
所といったところか。 



海外ソフトにはさ 
まれてやや不運な境 
遇だった。が,人気 
があることには変わ 
りない。また,ラグー 
ン,ギャラガ J 8 な 
ど,アクションもの 
が初登場した月に弱 
くなるという性質を 
持っている。 



夏の終わり頃から 
銳い伸びを見せたこ 
のゲーム。が,ラグー 
ンともつれて足元が 
おぼつかないという 
現状を,いまだに引 
きずっているところ 
がある。今後トップ 
の座に戻ることはで 
きるのだろうか。 


シムシティーにひ 
と月遅れて登場。さ 
すが去年の実力者, 
ズームは得票が安定 
している。しばらく 
は現状維持といった 
ところか。今年もチ 
ャートを賑わせそう 
だ。しかし,もう少し 
発売が早ければ……〇 


1 



アフターバーナー, 
ファンタジーゾーン 
より持ちこたえた。 
ズーム ファンが「ラ 
グーンが出るまでは 
つ」と粘りながら力 
つきていくさまがグ 
ラフによく出ている。 
それでも8位は見事 
なもの。 




春先,秋など気候 
がよくなるとふらつ 
くのは,みんな天気 
がいいと本物のバイ 
クでツーリングに出 
てしまうからなのか 
(そんなバカな)? 
これぞ先が読めない 
ソフトの典型といえ 
る0 


シムシテイー 



9位 グラナダ 



非常に典型的なス 
マッシュヒットのグ 
ラフパターン。サッ 
と盛り上がってサッ 
と消える「ひと夏の 
恋」型とでもいえば 
いいのかな。すぐに 
忘れて,しかもあと 
くされなしってヤツ 
ですか。 



10位 三国志 II 



最初の波は Xlturb 
〇版発売。次の波は 
X 68000版発売決定。 
最後の波は X 68000 
版発売。光栄のファ 
ンは実に正直者揃い 
だ。しかし,なんで 
発売されるとすぐさ 
ま順位が下がるんだ 
ろう? 


28 Oh ! X 1991.2. 






























































TOP 10 新年早々仕事納め 

〜那年の TOP 10 の動きを斬る!!〜 


集計したのは’90年1月号から別年1月号まで(ただし’昍年2月号は休み) 
の12回分。その月の1位のゲームに10点,2位9点……10位1点とポイントを 
与え,その合計を集計しました。それがこの表です。 


No . 

ゲームタイトル 

ソフトハウス 

ジャンル 

対応 機種 

1 

3 

4 

5 

6 

7 

8 

9 

10 

II 

12 

1月 

年間 

1 

ダンジヨン•マスター 

ビクター音楽産業 

RPG 

X 68000 

0 

0 

10 

10 

10 

9 

7 

9 

7 

0 

5 

7 

74 

2 

ポビユラス 

ィマジニァ 

シミュレーション 

X 68000 

0 

0 

0 

5 

9 

10 

10 

10 

10 

7 

6 

3 

70 

3 

ソーサリアン 

日本ファルコム 

RPG 

Xlturbo 

8 

6 

8 

6 

4 

4 

1 

3 

3 

4 

7 

5 

59 

4 

ワンダラーズ•フロム•イース 

日本ファルコム 

RPG 

X 68000 

0 

0 

4 

9 

8 

8 

8 

1 

6 

6 

1 

0 

51 

5 

スーパーハングオン 

シ ャープ /SPS 

アクション 

X 68000 

0 

9 

7 

2 

0 

0 

5 

4 

9 

3 

0 

0 

39 

6 

シムシティー 

ィマジニァ 

シミュレーション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

4 

10 

9 

6 

29 

6 

ラグーン 

スーム 

RPG 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

9 

10 

10 

29 

8 

ジェノサイド 

スーム 

アクション 

X 68000 

7 

5 

3 

2 

5 

1 

4 

0 

0 

0 

0 

0 

27 

9 

グラナダ 

ウルフ • チーム 

アクション 

X 68000 

0 

0 

0 

0 

0 

7 

9 

8 

2 

0 

0 

0 

26 

9 

三国志 II 

光栄 

シミュレーション 

Xlturbo / X 68000 

0 

0 

0 

3 

0 

6 

3 

0 

8 

5 

0 

0 

26 

II 

メタルサイト 

システムサコム 

アクション 

X 68000 

3 

10 

9 

0 

0 

0 

0 

0 

0 

0 

0 

0 

22 

12 

アフターバーナー 

電波新聞社 

アクション 

X 68000 

10 

8 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

18 

13 

アルガーナ 

M . N . M . ソフトウェア 

RPG 

XI /turbo 

0 

0 

6 

0 

6 

3 

0 

0 

0 

0 

0 

0 

15 

13 

バブルボブル 

電波新聞社 

アクション 

X 68000 

0 

0 

0 

8 

7 

0 

0 

0 

0 

0 

0 

0 

15 

13 

天下統一 

システムソフト 

シミュレーション 

X 68000 

0 

0 

0 

0 

0 

0 

6 

7 

2 

0 

0 

0 

15 

16 

テトリス 

BPS 

パズル 

Xl / turbo / X 68000 

9 

3 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

12 

16 

ファンタジーゾーン 

電波新聞社 

アクション 

X 68000 

5 

7 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

12 

18 

ナイトアームズ 

アルシスソフトウェア 

アクション 

X 68000 

4 

1 

6 

0 

0 

0 

0 

0 

0 

0 

0 

0 

II 

18 

サイバリオン 

シャープ /SPS 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

1 

8 

2 

II 

18 

パロディウスだ! 

コナミ 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

3 

8 

II 

21 

ギャラガ’88 

電波新聞社 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

5 

5 

0 

0 

0 

10 

22 

ナイアス 

ェグザクト 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

9 

9 

23 

サンダーブレード 

シャープ / SPS 

アクション 

X 68000 

0 

0 

0 

7 

1 

0 

0 

0 

0 

0 

0 

0 

8 

23 

ワールドコート 

SPS 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

8 

0 

0 

8 

23 

エアーコンバット.遊犁王 II 

システムソフト 

シミュレーション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

4 

4 

8 

26 

サーク 

マイクロキャビン 

RPG 

X 68000 

0 

0 

0 

0 

0 

5 

2 

0 

0 

0 

0 

0 

7 

27 

スタークルーザー 

アルシスソフトウェア 

RPG 

Xlturbo / X 68000 

6 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

6 

27 

ファーストクイーン 

呉ソフトウ: I :アエ房 

シミュレーション 

X 68000 

0 

0 

1 

0 

3 

2 

0 

0 

0 

0 

0 

0 

6 

27 

A-JAX 

コナミ 

アクション 

X 68000 

0 

0 

0 

4 

2 

0 

0 

0 

0 

0 

0 

0 

6 

27 

クォース 

コナミ 

パズル 

X 68000 

0 

0 

0 

0 

0 

0 

0 

6 

0 

0 

0 

0 

6 

31 

斬 

ウルフ*チーム 

シミュレーション 

X 68000 

0 

4 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

4 

31 

夢幻戦士ヴァリス II 

日本テレネット 

アクション 

X 68000 

0 

2 

2 

0 

0 

0 

0 

0 

0 

0 

0 

0 

4 

33 

トンネルズ&トロールズ 

スタークラフト 

RPG 

Xl / turbo / X 68000 

0 

0 

0 

0 

0 

0 

0 

2 

0 

1 

0 

0 

3 

34 

V’BALL 

シャープ /SPS 

アクション 

X 68000 

2 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

2 

34 

機甲師団 

アートディンク 

シミュレーション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

2 

0 

2 

36 

サバッシユ 

小学館 

RPG 

X 68000 

1 

0 

0 

•0 

0 

0 

0 

0 

0 

0 

0 

0 

1 

36 

イメージファイト 

アイレム 

アクション 

X 68000 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

0 

1 

1 


ではさっそく結果を見てみましょう。注目の 
年間ランキング丨位は ァ, 

ダンジョン.マスター!丨(拍手!) 

最大のライハリレ,ポピュラスをかわしての堂 
々 I 位。トップの回数ではポピュラスに負けて 
いますが,その間もしっかり上位をキープし, 
秋以降はカオスの逆襲のニュースでゲームシー 
ンを賑わせてくれました。斬新なゲームシステ 
ムと,そのシステムならではの面白さをキッチ 
リと出している点にはプレイヤーをうならせる 
ものがあります。 

また,今年は海外の大作の活躍が目立った年 
でした。チヤートを見ても,ダンジョン•マス 
ター,ポピュラスの強さは群を抜いているし, 
シムシティーも発売時期の遅さにもめげず6位 
を獲得しています。 

そんな海外ソフトにちょっと押され気味だっ 
た国産ゲーム勢。なんと,最高順位をとったの 


応募要項 


GAME OF THE YEAR の投票は, 

1 . 愛読者カードの記入撊 

2. 官製ハガキもしくは封害 

のいずれかに応募したい賞の名前とソフト名, 
そして推薦理由を明記して, Oh ! X 編集部までお 
送りください。採用ハガキの中から抽選で2名 
の方にハンデイスピーカー,9名の方にカード 
ゲームをプレゼントします。締め切りは2月15 
日(消印有効)。たくさんのご応募をお待ちし 
ております。 


は Xlturbo 用のソーサリアン。ゲームの完成度 
と XI ユーザーの執念が揃うと,チャートのこ 
こまできちやうんですねぇ。毎月ランクインし 
たのは,37本登場した TOPIO のソフトの中で, 
このソーサリアンのみ。拍手拍手 3 続いてのワ 
ンダラーズ•フロム•イースは,期待したほど 
の支持が集まらなかったようですがそれでも4 
位。日本ファルコムが国産ゲーム勢の I . 2フ 
ィニ ッシュを飾りました。 

それを追いかけるのが, X 68000 専用ソフト 
と他に類を見ないカリスマ性で支持を集めるズ 
—ム。ゲーマーをして「ズームだからよい」と 
いわしめてしまうのは有名な話。ラグーンも7 
位に入っています。 

X 68000 専用ソフトは去年よりだいぶ数が増 
え,ランクの上位にも顔を出しています。グラ 
ナダ,メタルサイト,ナイトアームズといった 
ところは,どれも X 68000 ユーザーの優越感をく 


「1990ゲーム回顧録」のお知らせ 


ゲーマーの生活は常に波瀾万丈に満ちている。 
どのゲームを選び,どれを究めるか。ゲームを 
巡って日々繰り返されるさまざまな事件•陰謀 • 
策略。時に怒り,時に笑い,また時に涙を流す。 
ゲーマーは毎日が真剣勝負なのだ。 

なんてカツコいいもんかどうかは知りません 
が,’90年の「ゲームと私」についての意見を 
募集します。自由応募部門のように単純に「こ 
のゲームはこうだった」では括れない話を官製 
ハガキもしくは封害に書いて送ってください。 


すぐる秀作でした。順位は低いものの見逃せな 
いのが22位のナイアス。案外 ダークホース かも。 

さて,ビデオゲームの移植ものでは SPS と電 
波新聞社が双璧ですが,今年はスーパーハング 
オンを5位に入れた SPS に軍配が上がりました。 
一方の電波新聞社はやや マニアック な要求に 応 
えていたようで,去年発売のア フターバーナー 
が最高位という結果に終わっています。このジ 
ヤンルにはコナミ, アイレム,システム サ コム 
などが続々と參入しており,来年は激戦区にな 
る気配が濃厚。特にコナミのパロディウスだ! 
は前評判で18位に入るほど。’ 91年の大きな話 
題のひとつです。 

ランキング全体としては,非常に納得のいく順 
番になったと思います。集計の方法上《長く遊べる 
ゲームのほうが上位に行きやすいという傾向はあ 
りますが,逆に話題性に流されないしっかりした 
ランキングだともいえるのではないでしようか。 

いちばん面白かった方にはアイワのカセット 
ボーイをさしあげます。かしこ。 



GAME OF THE YEAR 29 


































































CANVAS PRO -68 K 
で使用できるグラ 
フィックデータ集 c 
憤れるまで時間が 
かかる ツール だけ 
に充実したデータ 
集はかかせない。 
今後も拡充してほ 
しい。 


• り〜** 

ABC!)F.FC;III.»K 

I.MNOPOR.S'TU 

VWXYZ 



nbcdofghijklmnoixirs 
tUVWXyz 1234567890 
ABODEFGHIJKLMN 
OPQRSTUVWXYZ 


& tiisdi (5 CgDiili{|teGmDii 

opqpcttravwjsyE 

AQCDbEIFGMEJ 

0 CLMNOTOR 

SHUVWXYZ 


; , \m 


“実験的”というタイトルがつけられている 
が,もともと Oh ! X のグラフィック特集すベ 
てが実験的といってもいい。 

まず, Z ’ sSTAFF を2 D ツールのプラッ 
トホームとしてとらえてみた 0 Z ’ s - EX に拡 
張された機能には,_像処理,2 D と3 D の 
融合などテーマは尽きない。 

しかし,実験の最たるものは機能拡張その 
ものだ。それは PICFILER 式の呼び出しか 
ら始まり, Z ’ sSTAFF のマスク機能との融 
合にいたる。現在,多くの種類のソフトでァ 
ドイン ( Addin ) 型の ツールが出てきてい 
る。基本機能はそのままに,必要な機能はあ 
とからユーザーが組み込んで使用することが 
できるのだ。グラフィックの場合,圃像処理 
などのフイルタはアドインソフトにもってこ 
いの存在だ。もともとの強力な機能にあわせ, 


ユーザーレベルでの拡張の可能性ができたわ 
けだ。 

パソコン上のレイトレーシングツールもボ 
クセル分割という高速化の山を乗り越え,つ 
いにポリゴンとメタボールという「自由曲面」 
への道を歩み始めた。となれば次世代のッー 
ルに求められるのは「より自然な圃像生成」 
であろう。 

このあいだまでワークステーシヨンがやつ 
ていたことだから,はっきりいってまだパソ 
コンには荷が重い。 HASH は思い切った簡 
略化で実験的に半影処理を達成した希有のシ 
ステムである。作成される映像は従来のレイ 
トレ ー シングの弱点を見せつける。 

が, HASH は使用するプリミティブを球 
に限定したことを抜きには成立しえないとい 
っていい。まさに実験的であるにもかかわら 



^1 

IS 

愚 



^onfrulHlutions! 


1 


川 M フォント _ 

rad Jack 

□ 口 (Tip N « us « 
0()11 C > r ^ macT nts 

rl ' ?xhk 

| 木 ゴシック体 


,け 

I 

旧 

.鳙し 

1 


ず,完成されたバランスを持っているので次 
の一歩が踏み出しにくいのだ。 

実用的なシステムを組むための方法として 
はプリミティブを追加することではなく,影 
の計算と物体の計算を分離することが最善だ 
ろう。たとえば,プリミティブを使って物体 
を作成するときにその物体の内部を球で埋め 
る処理を加える。レンダリング時の隠面処理 
はプリミティブを使い,影の計算部は球を使 
う……などが実現できれば実用に足るシステ 
ムを構築できると思われる。こうして次の実 
験が必要になってくる。 


統合化へ 


最近のグラフィックソフトの流行では 2 D 
ツールでも 3 D 的な処理が行えるようになつ 


クラフイツクの “ 実験的”手法 


IB 




CG の始まりはドットの集合体であった。図形を表しう 
るグラフィック画面を経て,アナログ闩 G 日の普及によ 
り,我々は連続した色彩の空間を手に入れることとなっ 
た。それは従来の「形 j を主としたパソコン CG の世界 
から「質感」までも表現することのできる,そこにひと 
つの世界を再現できるものだった。 

パソコンの計算能力も向上し,その手法や表現力はワー 
クステーションの域にまで近づいた。画面の表現力は時 
として画材を超えていた0しかし,まだ我々はパソコン 
CG の可能性のすべてを見ているわけではない。想像の 
翼は新しい世界を拡大し続けるのだから。 


0 2 レイトレーシング 




初^者のためのグラフィックあ n これ 

.JH 

嚇 

. 

rj 

CANVAS PRO 6 日 K 

ドロ 1 グラフィックツーノ . 

. 丹 

嚇 

Z.sT 闩 IPHONY DIGITAL CRAFT テ 
ポリゴン デ-夕 r 3 D (^13 j . 

…….丹 

m 

廳レポート 

OT" A「r"? 丄II r-v/ . 

.m 

嚇 

Z SJd 1 A 卜卜支援ツー )v/- S ヒ入 

rr 

レイトレーシンク]: m 、 て半影を生成する 

IJ A 01 J V . 



rlAorl.A 

—THJ 了 

laSSOT レポート 

FineScanner 一 XB 日 . 






30 Oh ! X 1991.2. 

























































■I ' . 

, 


伊 U 




士 'U i ノ…: 

す I し、 私 

DIGITA 

L CRAFT での作!!例。 — 

マゥスで部品を置ぃ ^ ~ 

ていくだけで手軽に 

3 D CG が扱える。 %. 

W ^6r 

•» — ■■ .. す ,…. :— 一、‘..,—: . - «w ^ 、', '»••.. ». ,—. V—* ' . ' . ▲ • • 垂 , 


〇 ,嘗 T 






一目瞭然の柔らかな影。右側が従 
来のレイトレーシングによるもの 
で,左側が HASH . X による画像の 
出力例だ。 


2つの画像にそれぞれ処理を加え, 
さらにマスキングを施して合成し 
たところ。 Zs - EX の比較的単純な 
応用例だ。 


てきている。球や円錐などの物体を作成して 
その上にマッピングを施したり,できあがっ 
た画面を3 D 状に処理したりできる。 Z ’ s-E 
X で行っている3 D マッ ビングは 一種の ロー 
カルレイトレーシング である。 

また, 3 D グラフィックがアヵデミックだっ 
たころには御法度だった (?)3 D ツールの 
出力をペイントソフトで修整するといったこ 
とも行われるようになっている。 

もともと 2 D も 3 D も絵を描くための手法 
にすぎない。グラフィック環境は統合される 
べきだろう。といっても全部まとめてしまえ 
というのではない。必要もない機能までつけ 
て重い システムを 作ってもしかたがない。統 
一す る必要のある部分,それは 第一に ユーザ 
ーインタフェイス, 次に データ 形式だ。デ ー 
夕形式は統一しなくても形式さえわかれば変 


換できる。しかしわからない(調べればすむ 
という話もある)。たとえば Z’sTRIPHONY 
のデータ形式, Z ’ sSTAFF のアウトライン 
フォントフォーマット,サイクロンのデータ 

フォーマット, CANVAS のデータ構造……。 

特に Z ’ sTRIPHONY のデータはサイ クロ 
ンで扱え,なおかつ Z ’ sTRIPHONY 自体の 
エディタが非常に優れていることもあり非常 
に惜しい。本来ならポリゴンだけでなくレイ 
トレ用のプリミティブも編集できるようにし 
てほしいところだ。いつだって強力なエディ 
夕はシステムの核となりうるのだ。 

2 D に話を移そう。 

X 68000 では画像データフォーマットとし 
ては F » IC が事実上の標準となった感がある。 
32768色のデータを実に見事に圧縮する PIC . 
R そして拡張された APIC . R はグラフイック 


を使う者にとって最高の福音だった。 

今後はもっと嵩張るデータ,すなわちレイ 
トレーシングの フルカラー 出力 ( RGB 各8 
ビット)に対しての拡張が行われるべきだろ 
う。65536色の範囲で計算していてはマッハ 
バンドは追放できない。1600万色で計算して 
おいて65536色に落とせばずっと綺麗な_像 
が得られる。ただ,こうしてできた画像は非 
常に圧縮効率が悪くなる。 PIC をもってして 
もだ。24ビットデータ時点で PIC 圧縮をかけ, 
展開時に65536色にするというわけだ0 

すでに画面解像度の変換(拡大/縮小)や 
階調落としの技術は完成されているといって 
いい。 展開に時間がかかることさえ厭わなけ 
れば非常に大きな意味での画像ファイルフォ 
ー マット の統一 すら可能だろう 0 Macintos 
hll や PC -9801 のフレームバッファを使用し 


特集グラフィックの''実験的〃手法 31 
























Zs - EX で拡張されたさま 
ざまな機能を使用したと 
ころ。マスクペイント, 
フレア処理,ランダムフ 
ラクタル,そして 3 D マ 
ッビング…… 。 


製品一覧 XB 8000のクラフイツク環境 


K?4«4> t I 




Z ' sTRIPHONY 用データ集「 3 D 俱 
楽部」の使用例。ポリゴンでもこ 
んなにリアルな C G が可能。気分 
はもうインテリアデザイナーだ。 



ている ユーザーは 膨大なデータをもてあまし 
ているのだから。 

SX - WINDOW のような環境であればも 
っとデータ運用を意識したツールも出てくる 
のだろうが,現状では閉じた世界が多すぎる。 
SX-WINDOW (正確には SX シェル)のグ 
ラフィック能力がそれらを取り込めるほど(物 
理的に)高くないのが残念ではある。 

DTP がますます流行し,今後は文書まで 
も統合したソフトウェアが登場してくること 
だろう。そのときこれまでのグラフィックツ 
ールはどのように位置付けられるのだろうか。 
グラフィックを始め,さまざまなツールはど 
んどん広がりを見せる。そして,独自の世界 
を作ってしまう。 

「拡張と統一の両立」,それが Oh ! X の“実 
験”である。 


籲 2 D ペイント系 ツール 

数が多いので省略。詳細は1990年8月号のグ 
ラフィックツール紹介記事を参照のこと。 

•2D ドロー系ツール 

• CANVAS PRO -68 K (シャープ) 

カラー対応のポップアートツール。テキスト 
セル,ドローセル,ペイントセルの3枚のセル 
を持ち,そのそれぞれにオブジェクトと呼ばれ 
る部品を張り付けて絵を作り上げる。 

ドローオブジェクトを制作するのには多少の 
技術と根気が必要なので,ドローグラフィック 
ライブラリも用意されている。 

•3 D ポリ ゴン系ツール 

• Z'sTRIPHONY DIGITALCRAFT (ツァイト) 
ポリゴン(多角形)のモデリング/レンダリ 

ングシステム。三面図や透視図のさまざまな表 
示モードを使ってポリゴンを編集する。ポリゴ 
ンは単体だけでなく,いくつか集めたものをひ 
とつのオブジェクトというように階層化して管 
理できる。回転体などの規則的な形状をした才 
ブジ x クトは自動生成できる。 

レンダリング時は,フラットシェイディング 
で通常のポリゴンとしての表現もできるが,ス 
ムーズシェイディングをかけることで,疑似的 
に曲面に見せることもできる。また,半透明な 
ポリゴンの表現も可能である。 

用途を限れば,データ集も用意されており, 

モデリングの手間を省くことができる。 

籲 3 D レイトレーシング系 ツール 

市販されているものは2つ。両者に共通する 


部分を先に述べておくと,プリミティブ(基本 
立体)として球や円錐などの2次曲面や直方体 
などが使えること,プリミティブどうしの論理 
演算が可能なこと,反射•屈折および影の表現 
ができること,レンダリングの高速化を図るた 
めにポクセル分割を採用していること, テクス 
チヤ(カラー).バンプ(凸凹)•ァトリビュー 
卜(反射率など)のマッピングが使えること, 
物体を マクロ 化して扱えることが挙げられる。 

• C - TRACE 68 (キヤスト) 

ごく才ーソドックスなレイトレーシングツー 
ル。 

モデラーは付属していないので,形状ファイ 
ルはテキストエディタで作成する必要がある。 

トランスピュータ対応版 ( C-TRACE TP ) が 
用意されている。通常のものとデータの互換性 
がある。近く メタポールをサポートした新バー 
ジョン ( C-TRACE + ) がリリースされる予定 
である。 

•サイクロン Express a 68 (アンス*コンサル 
タンツ) 

階層化モデラーというウリを持つレイトレー 
シングツール。モデラーでは,レンダリングに 
必要なすべてのパラメータを取り扱うことがで 
きる。マウスには対応していない。 

ポリゴンを取り扱うことができる。これによ 
り表現力が上がる。ただし,サイクロン単体で 
はだめで,ポリゴンのモデリングは ZsTRIPHON 
Y DIGITAL CRAFT で行い,それをサイタロンに 
データコンバー トして実現する。 


32 Oh! X 1991.2. 































特集 1 グラフィックの“実験的”手法 


入門者のためのグラフィックあれこれ 

CG の基礎知識 

CG にもいろいろありますが,いちばん問題になるのはどう 
TanAkihiko 日やって絵を描くかということです。たくさんのアルゴリズムが 

生まれてきました。ここではそれらを理解するための基本的な 
考え方を紹介しましよ5。 


どうもグラフィックというと,ウケがよ 
いわりに「数学が必要」で「難しい」とい 
うイメー ジができてしまった感がある。グ 
ラフィック特集のたびに違うことをやって 
いるので新しい読者には ついて こられない 
面もあるだろう。 

グラフィックを描くだけなら理屈はいら 
ない。可能性を追求すれば必要になる。コ 
ンピュータグラフィックの歴史はまだ浅い 
が世界中の頭脳を結集したアルゴリズムが 
日進月歩で生み出されており,我々はその 
多くを適用できるハードウェアを目の前に 
しているわけだ。もうやるしかないではな 
いか。 

ここではこれまで扱ってきた,またはこ 
れからも使われるであろう,さまざまなコ 
ンピュータグラフィックの用語や概念につ 
いてまとめを行っておく。まだ用語に惯れ 
てない方やずいぶん昔のことなので忘れて 
しまっている方は特に注意して読んでほし 
い。ここでの解説では数式は一切出てこな 
いので安心だ。 

まずは CG (コンピュータグラフィック) 
の基礎の基礎から始めよう。 

パソコンのグラフイックはデイスプレイ 
のドットの明るさを調整して図形を表現す 
る。 

色を表す場合には色を赤緑青の3原色 
(光の)に分解して表すことが多い。 X 680 
00の場合,それぞれ〇〜31の32段階が扱え 
る(最大時)。これで表現できる色数は32 
X 32 X 32= 32768色となる。 

これを512 X 512=262144個指定すればど 
んな 絵で も描ける。しかし,これを 手作業 
で指定することは 512 K バイトのマシン語 
プログラムを作ること以上に困難なことだ 
といえる。そこで効率のよい ツールを 使っ 
たり,コンピュータに計算させたりするわ 
けだ。それが CG である。 

ひと口に CG といってもいろいろな形態 
が考えられる。ふつうに考えて, CG のも 
っとも大きな区分は平面 (2 D ) か立体 (3 D ) 
かということだろう(昔,桊野雅彦氏がや 


った4次元グラフィックとか祝一平氏がや 
った0次元グラフィックとかはふつうとは 
いえない)。もっとも,たいていは画面に 
出力されるわけだから,最終的に 2 D には 
違いない。ここでの区分は内部処理やデー 
夕の構成によるものである。 


2 D グラフィック編 


なにが2次元かというと,画面が2次元 
だからそれにあわ,せて絵を描くと2次元に 
なるというわけだ。もともと絵というのは 
平面的なもの。感覚的にもいちばんわかり 
やすいのではないかと思う。 

ここで出てくる用語として「ビットマッ 
プ」というものがある。ほとんどのグラフ 
ィック画面はビットマップだから気にする 
必要のない単語ではある。画面上のドット 
に任意に色指定できること,といった意味 
で捉えれば いい。 要はふつうのグラフィッ 
ク画面のこと。 X 68000 の画而などはワー 
ドマップといったほうがいいハード構成な 
のだが。 

ビットマップでないものの代表例が X 68 
000 のスプライ ト BG や XI の PCG だ。 スク 
ロールゲームの 背景な どの 多くは四角形の 
チップで構成されている。限られた色数と 
限られたチップ数で絵を描く技術,ソフト 
ハウスの チップ ワークの 優劣は ゲーム 画面 
を見ていると明らかだ。うまく運用するに 
は独特なテクニックがあるらしいが,詳し 
いことは割愛する。 

ペイントとドロー 

2 D グラフィック ツールを 見てみよう。 
Z’sSTAFF などの一般的なグラフィック 
ツールは ペイン ト 系の ツールに 分類され る0 
CANVAS などは ドロー 系 ツール だ。こう 
いうと雛しそうだがペイント系はごくふつ 


うの ツール, 問題は ドロ ー系だろう。 ドロー 
は絵を構成する®素を手順で示し加工する 
ことで絵を描いていく。 

極端にいってしまえば,ペイント系は画 
面上のピクセルを直接いじるツールである。 
ピクセルは,日本語では画素という0画面 
上のドットのことである。 X 68000 の65536 
色モードでいえば, 512 X 512 個のドットが 
あり,そのひとつひとつをピクセルと呼ぶ0 
で,そのピクセルの色をひとつひとつ決め 
るのがペイン ト 系のグラフ イックツールな 
のである。ただ点を打っていくのではあま 
りにも面倒だし,コンピュータの上に載せ 
る意味がないので,さまざまなペンや便利 
な編集機能を載せているのである。 

対してドロー系の立場はかなり異なる。 
直線や曲線や多角形といった図形を部品と 
して捉えている。文字も部品のひとつであ 
る。その部品を1つひとつ紙の上に乗せ 
ていく,というのがドロー系のグラフイッ 
クツールのイメー ジといえる。紙の上に乗 
せるだけなので,あとから修正もできるし, 
取り除くこともできる。拡大 • 縮小 • 変形 
も,部品の座標データをいじるだけなので 
容易に行うことができる。 

半面,部品自体が単純なものになりがち 
で,絵画的なものを描くのは不向きといえ 
る。図版などを描くには非常に強力。ちな 
みに今回の図版には X 68000 用の CANVA 
S PRO -68 K を使用している。 


3 D グラフィック編 


3 次元グラフィックは パソ コンの 醍醐味 
を教えてくれる。 2 D ならば コンピュータ 
でなくても可能だが, 3 D となると コンビ 
ュータ を使わなければ ち よつとできない こ 
とだ。 

ここでいう3次元とは内部処理のことを 
指す。立体視とか赤青メガネとか,本当に 


特集 cg の基礎知識 33 




















しない。カメラから視線を無数に発生させ 
てシーン内に飛ばす。そして,最初にぶつ 
かった物体がカメラから見えているという 
ことにするのである。カメラの フイルムを 
画面になぞらえ,画面上の1点1点に対応 
する視線をシーン内に飛ばし,最初にぶつ 
かった物体の色を画面に書き込めば,それ 
で隠面消去ができることになる。 

レイトレーシングの 考え方は,そのまま 
反射•屈折,それに影の表現に応用できる。 
ぶつかった物体がもし鏡のようなものであ 
った場合,その視線が鏡に反射してどの方 
向に行くかは簡単に計算できる。したがっ 
て,このぶつかった点を新たな視点として 
新しく視線を飛ばし,どの物体にぶつかる 
かを調べる。これが反射の原理である。 

屈折も同様である。 

影である力す,視線がぶつかった点を新た 
に視点とし,今度は光源に向かって視線を 
飛ばす。もし,光源にぶつかる前に他の物 
体にぶつかったら,最初にぶつかった点は 
実はその物体の影に隠れているということ 
がわかるのである。したがって,そこは影 
になる。 


法または Z バッファ法 



透視変換 



透視変換によリ • 

視点に近いものほど大きくなるように 
変形される。 


立体に対応するアプローチもあるが,ここ 
では単に3次元座標でデータを扱うもの, 
要するに遠近法などを自動で処理してくれ 
るものと見てほしい。 

隠面® J 里 

3 D コンピュータグラフィックとなると, 
問題になるのは,物体の前後関係である。 

2つの物体がある。2つは重なって見える。 
ところが,遠くにあるはずのものがもうひ 
とつのものを隠しているように見えたら, 
たちまちにして両者の前後関係を認識する 
ことは不可能になってしまう。遠くにある 
ものは近くにあるものに隠される。これが 
あるべき姿である。 

この隠面消去と呼ばれる問題には解決法 
がいくつかある。そのどれにも共通してい 
るの力 5 ',結局近〈にあるものを描く,とい 
うごく当たり前のことである。 

まずスキャンライン法と z バッファ法か 
ら。両者は違う方法ではあるが,似た部分 
はある。 

構図はューザーが決めている。ひとつの 

図1シーン 


シーン内には物体がいくつもあり,その中 
にある位置と角度でカメラを置く,という 
イメージである。 

構図が決まったら,ここからは計算機の 
仕事である。処理をしやすくするために, 
カメラの向きがまっすぐになるようにシー 
ン内の物体を移動してやる(少々不正確な 
いい方だがぉ許しいただきたい)。まっす 
ぐ,とは, Z 軸に平行,という意味である。 
こうしたぉかげで,物体を Z 座標の順に並 
ベるだけで,物体を視点に近い順に並べた 
ことになる。そして,視点から遠い物体か 
ら順に画面に置いていけば,結果として, 
重なった部分では近いものが見えるという 
わけ。 

これをもう少し高度にしたものがスキヤ 
ンライン法や Z バッファ法と呼ばれる描画 
アル ゴリズムである。 

そしてレイトレーシング。レイトレーシ 

ングといえば派手な反射や屈折が表に出て 
きがちだが,もともとは隠面消去の一手法 
である。 

レイトレーシングでは,シーン内の物体 
をカメラの正面に持ってくるということは 

図3スキヤンライン i 


z 



1 

--- - - - -! 

1 

L 

'、、、 

0 

、\ 

〆〆〆 




図2レイトレーシング 




スクリーン 



34 Oh!X 1991.2. 


図版は CANVAS PRO -68 K で作成 






















3 D グラフ 



の2大潮流 


ここまでの話からもわかるように, 3次 
元コンピュータグラフィックは大きく 2つ 
の流れがある0その2つの流れとは,レイ 
トレーシング法を用いたものと,スキヤン 
ライン法や z バッファ法を用いたものであ 
る0それぞれ,ここでは「レイトレーシン 
グ系」と「ポリゴン系」と呼ぶことにする。 
実はこの呼び方は大間違いなのだ。なぜ間 
違いかというと,レイトレーシングでもポ 
リゴンは扱えるから。しかしわかりやすさ 
を優先することにしよう。 

念のためにいっておくと,ポリゴンとは 
「多角形」のことである。多角形といって 
も実際に使われるのは三角形,せいぜい四 
角形がほとんどで,ポリゴンの 3 D グラフ 


ィックというのは三角や四角をツギハギし 


て立体を作ることだと思っていい。 


速度について 

レイトレーシングは,いまのところパー 
ソナルコンピュータにおいてはかなり高い 
地位を占めている。しかし批判も多い。日 
く 「遅い」「リアリティがあるというがそ 
れには制限がある」「形状表現の自由度が 
低ぃ」などなど。 

これらはいずれも,レイトレーシングの 
持つ弱点を突く,痛ぃ批判である。逆にポ 
リゴン系はこれらの弱点は克服している。 
しかし,それでレイトレーシングの存在価 
値が失われるわけではない。ポリゴン系に 
もポリゴン系なりの弱点がある。両者は共 
存可能なものなのだ。 

描画速度について考えているうちに,レ 
イトレーシング系とポリゴン系の違いがひ 
とつ浮かび上がる。 

レイトレーシングの場合,計算機は「い 
ま,なにを描画しているのか」を知らない。 
視線を発生させて空間に飛ばし,シーン内 
のすベての物体と交差判定を行い,その中 
でもっとも近ぃ物体を決定し,そこで初め 
て描くべき物体を知るのである。これをピ 
クセルごとに繰り返す。 

ポリゴン系の場合は事情は逆で,登録さ 
れている物体をひとつずつ描画していく。 
いい換えれば「いま,なにを描画している 
のか」を初めから知っているのだ。 

この差は大きい。レイトレーシングが遅 
い遅いと悪態をつかれているもっとも大き 
な原因はここにあるのだ。なにを描くべき 
か知らないのだから,ピクセルの個数だけ 


いちいち探し回ることになる。とんでもな 
いところにある物体でも,一応は視線と交 
差しているかどうか検査しなくてはならな 
い。事実,レイトレーシングの処理時間で 
もっとも大きなウェイトを占めているのが 
交差判定で,全体の数十%,ときには90% 
以上にも及ぶ。 

これを軽減するために,ボタセル分割な 
ど数々の工夫がある。なにがどこにあるか 
を前もって調べてぉけば,探し回る手間を 
大幅に省略できる。 

CG のリアリティとは 

半分嘘混じりなのを承知でいう力 5 ',ポリ 
ゴン系は形状の表現に関して自由度が高く, 
レイトレーシング系は質感の表現に対して 
自由度が高い。 

レイトレーシングは確かに写真のように 
リアルな画像を出力することができる。し 
かし,現実とまったく同じリアリティを得 
ることができるかというと,決してそんな 
ことはないのである 0 レイトレーシングの 
場合は,使えるプリミティブが限られてぉ 
り,もしそれをちょっとでも外れるような 
ものを作ろうとすると,たちまちにしてリ 
アリティは崩壊してしまうのだ。どこのメ 

一力一のクルマでもいい力 5 ',レイトレーシ 

ングで作ってみるといい。写真のような作 
品ができるだろうか。たぶん,とてもみっ 
ともないものになるであろう。 

レイトレーシングで扱えるプリミテイブ 
は,実現が簡単ということもあり,多くは 



ポリゴンによる立体^見 ( Z ’ sTRIPHONY ) 

球などの2次曲面にとどまっていた。そし 
て,それらを論理演算で組み合わせたり切 
り取ったりして目的の形状に近づけていた。 
したがって,「チェック模様の台に乗った 
金属球」と 力、, 「ガラスのテーブルに乗っ 
たワイングラス」ならば,写真と見まごう 
ばかりのリアルな画像を出すこともできる 
が,自動車のような複雑で微妙な曲面を組 
み合わせた形状は苦手なのである。ここに, 
レイトレーシングの表現力のひとつの限界 
があった。 

ただし最近になって,パーソナルコンビ 
ュータ上でも自由形状を扱えるレイトレー 
シングソフトが現れつつある(プロの世界 
ではずっと前からあった)。ポリゴンやメ 
タボールである。いずれも2次曲面に比べ 
て重い処理であるが,とりあえずスキャン 
ライン法などを用いたポリゴンレンダラと 
肩を並べるだけの表現力は身につけた。反 
射や屈折や影を簡単に表現できる分,ボイ 
ントは商い。 

いつも問題は速度だけだ。 


図4 3次元コンピュータグラフィックで扱えるプリミティブの例 



特集 CG の基礎知識 35 





特集 1 グラフィックの“実験的”手法 

CANVAS PRO -68 K 

ドロー系グラフィックツー J レの魅力 

Macintosh の世界では多くのドロー系グラフィックツール 
丁日—丹明彦 がありますが,国内にはそうし、ったツールはほとんどありません。 

1 J そこに登場したのが XB 8000用の CANVAS PRO - 68 K です。 

データ集も出たところで改めてその魅力を探ってみましよ5。 


前回の紹介からしばらく時間がたってい 
る。その間に , CANVAS PRO -68 K は 
正式に発売され,はたまたデータ集も発売 
され,もうお使いの方も多いことと思う。 
そこで第2回のレポートをお届けする。 

前回のおさらいから 

CANVAS PRO -68 K は,いわゆるドロ 
一系のグラフィックツールである。これま 
で X 68000 のグラフィックツールといえば, 
Z ’ sSTAFF を始めとするペイント系のツ 
ールであった。ペイント系のツールは,画 
面の上に色を置いていく。対してドロー系 
のツールは,部品を作って,画面の上に部 
品を置いていく。その部品はいつでも修正 
できる。 

CANVAS PRO -68 K は図形の印刷を 
主眼としたツールである0プリンタに出て 
〈るイメージそのままの画面で編集するこ 
とができる,いわゆる WYSIWYG 方式の 
ポップアートツールなのだ。 

美しい印刷ができるグラフィック ツール 
は長いこと待たれていた0ドロー系 ツール 
は部品の情報をドットではなく座標という 
形で持っているので,部品を拡大してもぺ 
イント系 ツールの ようなモザイクにならな 
い。印刷を目的としたものには NEW Pri 
ntShop PRO -68 K があったが , CANVA 


S PRO -68 K は ドロー 系の ツールで あると 
いうことを セールス ポイントにしている 0 


基礎知識編 


前回は技術的な部分にまったく触れな 
かった。その中で基礎知識として説明して 
おきたいことがいくつかある。ペイント系 
の ツールに 惯れた人には馴染みのない概念 
も多いことた^ろう。 

CANVAS PRO-68K はセルを編集する 

CANVAS PRO -68 K にはたくさんの 
動作モードがある。それを押さえておこう。 
おいしい部分を味わうのはそれからだ。 

アニメセルというのをご存じか(なんて 
失礼な質問 ) 〇アニメセルは透明なシートで, 
それに人物の絵を描く。あらかじめ描いて 
おいた背景の上にアニメセルを重ねれば1 
コマの出来上がりだ。アニメセルの上の人 
物の動きだけ変えていけば,背景をいちい 
ち描き直す必要がない。複数の人物が出て 
きても,それぞれ別のアニメセルに描いて 
おいて重ねるだけ。これは便利だ。 

で , CANVAS PRO -68 K が扱うセル 



•CANVAS PRO-6BK 
29, 800 円 ( 税別) 


•CANVAS PRO-68K ドロー グラフィックライブラリ 
Vol. 1, 2 各 8, 800 円(税別 ) 

シャープ 003(3260)1161 


はこのアニメセルに性格が似ている。セル 

は3種類で,それぞれ, 

• ドローセル 
• ペイントセル 
• テキストセル 

と名前がついている0この3枚のセルを重 
ねて1枚の作品を作る。3枚の間の優先順 
位は自由に変えられる。 

さて,この3種類のセルの上で編集する 
部品はそれぞれ違ったものである。 

ドローセルは CANVAS PRO -68 K の 
目玉である。直線はもちろん,自由曲線, 
円,多角形,その他さまざまな図形を扱え 
る。何度もいうように,これらは印刷する 
瞬間まで直線や曲線と いっ た部品としての 
属性を失わないので,プリンタに出力した 
ときの図形は,あくまでプリンタの解像度 
をめ いっぱい 生かしたものになる。ハード 
コピーとはこの点で違う。 一般に プリンタ 
のほうが画面よりはるかに解像度が高いの 
で,ハードコピーした画面では粗さが拭え 
ない0その点,ドローセルは座標データか 
ら印刷パターンを起こすので,いくら拡大 
しても大丈夫。 

一方のペイントセルは,通常のペイント 
系 ツール に似ている。グラフィック画面に 
図形を塗り付けてセルを作り上げる。ただ 
このセルだけが唯一画面のイ メー ジその も 
のをデータとして扱うので,解像度の点で 
は少し弱い。 

そしてテキストセルは,文字を扱う。文 
字はいろいろな大きさで描けるし,自由な 
配置も可能である。ベースラインを曲線で 
指定すれば曲がった文章も描ける。小さな 
文字をびっしり並べてスクリーントーンの 
ようにすることもできる(かなり重くなる 
が)し,大きな文字を出すこともできる。 

そしてなによりも違うのは,こうして作 
った文字の1つひとつはセルの上に浮いて 
いる部品なのだ0まだセルの上に張りつい 
ているわけではないので,マウスでつかん 
でずりずりと動かすこともできる。指定し 
た曲線の上にくねくねと並べることもでき 


36 Oh! X 1991.2. 


























る。さらに,変形することも簡単にできる。 
文字の装飾もいろいろあって,白抜き文字 
や太文字,影つき,斜体,などが使える。 

半角フォントに関しては , CANVAS P 
RO -68 K のシステムデイスタにいろいろ 
なものが用意されている。これはアウトラ 
インフォントなので,拡大しても大丈夫。 
印刷しても文字の品質は落ちない。 

全角フォントは,デフォルトでは ROM 
フォント(に スムー ジングをかけたもの) 
だけだが, Z ’ sSTAFF のバージョン2な 
どに ついて くるアウトラインフォントなど, 
品質の高いものを利用することができ,巨 
大な明朝体の文字も,楽に美しく出せる。 

スケルトンモードと 1 J アルモード 

ドロー セルとテキストセルには,それぞ 
れスケルトンモードとリアルモードという 
モードが用意されている。 

スケルトンとは骨格のこと。スケルトン 
モードでは,編集する図形の骨組みを,細 
線で表示している。出来上がりのイメージ 
とは多少ずれるのだが,表示の速度は速い。 
通常,編集作業はこのスケルトンモードで 
行う。ドローセルでは,ベジェ曲線の制御 
点はこのモードでのみ表示され,移動や削 
除もこのモードで行う。 

リアルモードは,指定した色や装飾など 
をすべてつけて画面に表示するモード。プ 
リンタに印刷するときのイメージそのまま 
である。印刷前に最後のチェックをするた 
めのモードと考えていいだろう。 

要するに,スケルトンモードは「作る」 
ためのモード,リアルモードは「見る」た 
めのモードである。 

編集モードと浮遊モード 

テキス ト セルにはスケルトン モード/ リ 
アルモードのほかに,編集モード/浮遊モ 
ードもぁる。 

テキストセルの編集モードは,いってみ 
ればテキストエディタ。ここでどういう文 
章を入れるかをキーボードから直接打ち込 
む。文字の色や装飾,フォントの種類や大 
きさの指定はこの編集モードで行う。これ 
らの指定は文字単位で行えるので,いろい 
ろと凝ったこともできる。1文字ごとにフ 
ォントを変えたら,脅迫状だって作れるぞ 
(冗談)。 

で,文章を作り終わったらぉもむろに浮 
遊モードに移り,思いどぉりのレイアウト 
になっているかどうかを見る。編集モード 


はあくまでテキストエディタなので,実際 
の印刷イメー ジはこの浮遊モードに来てみ 
ないとわからない(さらに色や装飾の様子 
を確かめたいときは,スケルトンモードか 
らリアルモードに移行する )0 うまくいって 
いないときは,また編集モードに戻って作 
り直すこともできる。ここが,文字をも部 
品として扱うことのできるドロー ツールの 
強みである。 

浮遊モードでは,文字をあれこれと動か 
すことができる。文章の下にベースライン 
と呼ぶ線が現れる。それをつかんで動かせ 
ば,その文章を画面の好きな位置に移動す 
ることができる。ベースラインを変形する 
(自由曲線になっている)ことで,曲がり 
くねった文章を作ることもできる。ただし, 
文字そのものを変形することはで'きない。 
変形したいときは,前回のレビューでやっ 
てみせたように,ドロー セルに コピーして, 
ドローオブジェクトとして変形する(この 
とき,文字としての厲性は失われているの 
で,たとえばフォントを変更したいと思っ 
ても手遅れである)。 

ペイント セルにはスケルトンモ ー ド/ リ 
アル モードはない が, 編集モード/浮遊モ 
—ドはある。編集モードでは円や長方形な 
どのペイントオブジェクトを作る。ペンを 
使って細かい修正をすることもできる。 

そのあと浮遊モードに移って印刷イメー 


ジを見たり,ペイントオブジェクトを動か 
したりできる。むろんペイントオブジェク 
卜も部品であるから,編集モードに戻って 
自由に作り直すこともできる。 

具体的にはなにがで吉るのか 

さて , CANVAS PRO —68 K にはいろ 
いろなセルと動作モードがある,といって 
みたところで,具体的にはなんのことかわ 
からないだろう。 

CANVAS PRO -68 K の作業は, 

• 部品を選択する。 

•道具(編集項目)を選択する。 

• 部品を加工する。 

といったことを繰り返しながら進む(ドロ 
一系 ツール だからこそ,わざわざこんな言 
い方をして強調するのだ)。この部品の種類 
も多いなら,道具の種類も多い。当然,道 
具は セル ごとに違う0ちょっといじったく 
らいで全貌がつかみきれるものではない。 

ドローセルで使える道具のうち,いくつ 
かについて解説しよう。 

•ペン 

折れ線または曲線を描く。マウスをタリ 
ックすれば折れ線の頂点に,ドラッグすれ 
ばべジェ曲線の制御点になる。ドラッグし 
ている間,ベジェ曲線はマウスの動きにつ 
れてくねくねと動く。これがけっこう楽し 


ベジエ曲線 


CANVAS PRO -68 K で自由曲線の登場する場面 
はいくつかある。 ドロー セルでは,たとえば自 
由曲線そのものを描くとき。またドローォブ 
ジエク トを エンベロープ 変形するとき。テキス 
トセルでは,ベースラインを変形して,文字の 
曲がりくねった置き方をするのに使っている。 
CANVAS PRO -68 K では自由曲線に ベジ:!: 曲線を 
用いている。 

ひとつのベジエ曲線を発生するためには,制 
御点が4つ必要である。ここからがちょっとわ 
かりにくいのだが,曲線が通るのは丨番目と4 
番目の点だけで,2番目と3番目の点は通らな 
い。この2つの制御点は,「曲線を自分のほうに 
引き寄せる」働きをするものと考えていいだろ 
1〇 

どうしてこんな難しそうな話をするのかとい 
うと , CANVAS PRO -68 K で自由曲線を操作する 
際には,この4つの制御点を直接操作する必要 
があるからである。別に理論など知らなくても, 
しばらく使っているうちに操作感覚(結構楽し 
い)はつかめるのだが,知っておくと操作法の 
理解も早いことだろう,というわけでおせっか 
い。 

本文でも書いているが,操作法は極めて簡単。 
適当な場所にマウスを持っていき,そこでマウ 
スのポタンをネ甲してドラッグすればベジエ曲線 


が出現する。何度も繰り返せば,次々とベジエ 
曲線が接続していく。出来上がりはマウスのポ 
タンを押した点を通る自由曲線になる。制御点 
の数はできるだけ少なくしたほうが美しい曲線 
になる。コツはすぐにつかめることだろう。 

—度描いたベジエ曲線を修正するときも,曲 
線をつつけば制御点が出現するので,それをマ 
ウスでつかんでドラッグすれば曲線が面白いよ 
うに動く。 

百聞は一見にしかず,ぜひ一度触ってみるこ 
とをお勧めする。思いどおりの曲線を描けるよ 
うになるには少々時間が必要かもしれないが, 
慣れると快感である。少ない手間で美しい曲線 
を作れるベジヱ曲線は,ドロー系 ツールの 必携 
アイテムといえるだろう。 



特集ドロー系グラフィックツールの魅力 37 





く,ベジヱ曲線を描いているだけでも鮑き 
ない。折れ線と曲線を,モード切り替えな 
どしないでごく自然につなぐことができる 
というのが賢い。 

•ポインタ 

ドローオブジェクトを指定したり移動し 
たりする。基本操作は編集したい点をクリ 
ックすること。矩形領域をドラッグして囲 
めば,領域内の点をすべて選択する。1点 
だけ指定すれば,その点に付属するベジェ 
曲線の制御点が現れる。制御点をマウスで 
つかんでドラッグすれば,ベジェ曲線もそ 
れにつれて動く。気に入った形になるまで 
あれこれとドラッグしていればいい。くど 
いようだが,いったん画面上に置いたあと 
でも,修正を加えることができるのがドロ 
一系 ツールの 強みなのである0 

ほかにも, 0 PT .2 キーを押しながら制 
御点をクリックすると,その制御点を含む 
オブジェクト全体が選択される。そこでお 
もむろに制御点をマウスでつかんでドラッ 
グすれば,オブジェクト全体を動かすこと 
ができる。 

•長方形 

長方形オブジェクトを作る。左上の座標 
と右上の座標を指定する。長方形といって 
も,プログラム上の扱いは4本の線分にす 
ぎない0つまり,頂点をマウスでつかんで 
ドラッグすれば,好きな形の四角形が作れ 


CANVAS PRO -68 K には,いくつかの半角文字 
のアウトラインフォントがついてくる。どれも 
が「ポップな」フォントなので,英数字でロゴ 
タイプを作るときにそれほど困ることはないで 
あろう。付け加えておくと,このベクトルフォ 
ントは , NEW PrintShop PRO -68 K に付属してい 
るものと同じものである。 

半角は文字の絶対数が少ない(アルファべッ 
卜の数なんて漢字に比べたらものの数ではな 
い)ので,いろいろなデザインのフォントが比 
較的簡単に供給できる。それに対して全角フォ 
ントを取り巻く状況は厳しい。漢字というのは 
計算機にとって厄介なものなのである。数千字 
にもおよび,しかもアルファベットよりはるか 
に複雑な漢字のフォントに対して,種々のデザ 
インのフォントを用意するのは苦しい。 

とりあえず使えるのは内蔵 ROM の24ドットフ 
ォント。これをただ拡大すると品質の点で見劣 
りするので,一昔前のワープロでよく見られた 
ような スムー ジングをかけている。本格的な 口 
ゴを作るのにこんな貧弱な(失礼)フォントで 
はだめだというので , CANVAS PRO -68 K では, 
Z,sSTAFF PRO -68 K ver . 2.0 に付属しているアウ 
トラインフォントを使えるようになっている。 
Z ’ sSTAFF には明朝体とゴシック体の2種類のア 
ウトラインフォントが付属している。これで当 


る。 

•円 

円オブジェクトを作る。中心と半径を指 
定する。やはりこれも4本のベジェ曲線が 
つながっているものなので,あとから変形 
することも可能。正多角形もある。 

•回転 

指定したオブジェクトを回転させる。回 
転の中心と回転始角!:回転終角を指定する。 
上下左右反転もある。 

•エンベロープ変形 

もっとも遊べてしまう道具がこれ。指定 
したオブジェクト全体を包む大きさの長方 
形を ェンベロープ とし,これに拡大縮小, 
変形,ベジェ変形(縦変形と横変形とがあ 
る)といった変形を加えることができる。 
•パスク ローズ 

耳慣れない名前だが,頻繁に使う。ペン 
で描いた曲線(または折れ線)は1本の曲 
線で,どう制御点を動かしても円や長方形 
のように ループを作って はくれない。この 
閉じていない曲線の端点をくっつけて閉曲 
線にしてくれるのがこの道具である。この 
処理をしておかないと,オブジェクトは面 
として働いてくれない(色をつけることが 
できない)。 

•オブジェクト属性設定 

オブジェクトの輪郭線の色や太さ,それ 
にオブジヱクトが閉領域だった場合(そう 


面は用が足りる。ただ,フォントのファイルは 
巨大で,フロッピーでの使用はまず無理。ハー 
ドデイスクがないとつらいところ。 

また, Z ’ sSTAFF に付属しているのは第一水準 
の漢字だけなので,第二水準の漢字を使いたい 
場合は, Z , sW 0 RD JG に付属のフォントを持っ 
てくる必要がある。 

ほかにも CANVAS PRO -68 K で使えるフォント 
には,「書体倶楽部」というのがあって,ゴシッ 
ク体ゃ明朝体だけでなく,各種の軎体が用意さ 
れている。この両者とも PC -980 I シリーズ用で 
はあるが,フォントのデータは利用できる。ち 
なみにこれらのフォントは当然ながら Z’sSTAFF 
でも利用できる(そりゃそうだ,どれもツァイ 
卜の製品だもの)。 

ROM フォント I 

Trad Jack 
Sfflirl Gnmp N»ttse P 

t ^ vnatf eus 

Kalila flrlisi |; 


:明朝体 ゴシック体 



でない場合は上のパスクローズを使って閉 
曲線にしておかないと色がつかない)は面 
の色を決めることができる。色は,8色だ 
けでなく,タイルパターンから選ぶことが 
できる。さらに面に色をつける場合は,グ 
ラデーシヨンまでかけることができる。 

ちなみに色であるが, 8色と書いたのは 
実は不正確である 。 CANVAS PRO -68 
K は基本的には8色だが,グラフィック16 
色モードで動作している。しかし残りの8 
色も決して無駄にはなっていない。残りは 
透明色に当てられている。つまり CANV 
AS PRO -68 K の扱える色は不透明色8色, 
透明色8色,の計16色なのだ。これは重ね 
合わせのときに威力を発揮する 。 CANV 
AS PRO -68 K では,セルどうしまたは才 
ブジェクトどうしを,優先順位をつけて重 
ね合わせることができる。このとき,上の 
セルまたはオブジェクトに透明色が使って 
あると,下に隠れたものが透けて見えるの 
である。つまり,透明色と不透明色を使い 
分ければ,マスキングの効果が出せるのだ。 
* 

道具についてはこれくらいでいいとして, 
編集コマンドについても触れておかなくて 
はなるまい。編集メニューからマウスをク 
リックして(または OPT .1+ しかるべき 
キーを押して),編集コマンドを呼ぶ。ドロ 
ーセルだけでなく,ほかのセルでもこの編 
集コマンドは使えるのだが,とりあえずド 
口ー セルの話と思うことにする0 
•カツ ト/コピー/ ぺ ースト 

説明するまでもないだろう。これが簡単 
にできるのも ドロー 系 ツールの 強みのひと 
〇〇 

•グループ化 

ドローオブジェクトをいく つか 作ったと 
しよう。それらをひとつのオブジェクトと 
してまとめて扱いたくなる場面は必ず生じ 
る。たとえば移動するとき。全部いっしよ 
に動いてほしいものだ。しかし別々のオブ 
ジェタトのままでは,なにかと厄介。そん 
なときは,あらかじめグループ化しておく 
のだ。元の別々のオブジェクトに戻したい 
ときには,逆の動作をする「アングループ 
化」も用意されている。 

•オブジェクトの上下関係を変える 
先ほども述べたよう.に , CANVAS PR 
0-68 K は不透明色と透明色を使い分ける 
ことができる。不透明なオブジェクトをか 
ぶせて下のオブジェクトを隠すこともでき 
る。それには,オブジェクトの優先順位を 
コントロールす ることがどうしても必要に 
なるわけだ。これはそのための編集 コマン 


さまざまなフォント 


38 Oh ! X 1991.2. 







ド。指定したオブジェクトを一番上に置い 
たり,一番下に置いたり,ひとつ上に置い 
たり,ひとつ下に置いたりできる。 

•複製 

これまたドロー系の強み。指定したオブ 
ジェクトを複製する。特においしいのが「多 
重複製」というやつで,オブジェクトを一 
瞬にして何枚も複製し,しかも等間隔で並 
ベてくれる。 

* 

とまあ,こんなところだろう 。 CANV 
AS PRO -68 K だとわかっていなかったら, 
とてもグラフィック ツールの 解説とは思え 
なかったことであろう。特にドロー系のツ 
ールらしい部分をピックアップして紹介し 
たつもりだ。 


使用 レボー ト 


それでは,実際にある程度使用したうえ 
でのレポートに移ろう。もちろん,国内に 
は比較対象になるようなソフトがほとんど 
ない。こういったソフトが登場したこと自 
体は十分に評価に価すると思うが,それで 
もあえて,現時点で思いつく要望は残らず 
書〈ことにしよう。 

CANVAS P 闩〇— 68 K の道具選択 

CANVAS PRO -68 K の編集はマウス 
とキーボードを併用しながら進める。キー 
ボードといっても,テキスト セルの 文字入 
力に使うだけではない。よく使う編集コマ 
ンド,たとえば「カット」や「ペースト」 
などは,キーボードにも割り当てられてい 
る。もちろんマウスだけでも編集コマンド 
は使えるが,キーボードが併用できると, 
いちいちマウスを画面上方に持ってい〈必 
要がないので,素早い操作ができ,けっこ 
う便利。はっきりいって,付属ワープロに 
も欲しいくらいである(ちなみに Hyperw 
ord はこの作法を採用している)。 

Macintosh を使ったことのある方なら, 
ブルダウン メニューの 中になにやらアルフ 
ァ ベットが書いてあって,そのキーを押す 
とマウスでそこをタリックしたのと同じ機 
能が使用できるのをご存じだろう。あれと 
似ている。 

メニューはプルダウンにちよっと似てい 
る力 ? ,ちょっと 違う。画面上端のメニュー 
バーにマウスカーソルを 運んで目的の項目 


でクリックすると,サブメニューがぽんと 
開〈〇プルダウンメニューはここからドラ 
ッグしてアイテムを選んでいたが , CAN 
VAS PRO -68 K のメニューではドラッグ 
しない。目的のアイテムのところでクリッ 
クするのだ。するとその項目が選択され, 
サブメニューもぱたんと閉じる。間違えた 
ときは右タリックするか,またはサブメニ 
ューの外側でクリックするかすればサブメ 
ニュ ー は閉じる。 

この メニュー形式の操作性は上々である。 
プルダ、ウンメニューに勝るとも劣らないも 
のがある。プルダウンメニューでは,ドラッ 
グの途中で マウスの ボタンから指が離れて 
しまって妙な動作をするという事故があり 
がちだが,その心配はない。反面,メニュー 
を閉じる動作が必要になるので,もしかす 
るとうっとうしいかもしれない(うっとう 
しいと思ったことはないが)。さてあなたな 
らどちらを選ぶか。 

ドロー系ソフトの使し、勝手 

CANVAS PRO -68 K のボイントは1 

にも2にもドロー系グラフィック ツールで 
あるということだ〇が,ペイント系 ツール 
を使ってきた人にとっては,かったるいと 
いうのが正直な感想になると思う。確かに 
使っていてある種のまだるっこしさはつき 
まとラ0 

ここで誤解^があっては困るのだが , CAN 
VAS PRO -68 K それ自身の操作性は悪く 
ない。変に数字を意識しなくても使えるし, 
マニュアルな しでも大方の操作はできる。 

しかし, ドロー 系 ツールは 必ず「手順」 
というのを持ち,そのためにペイント系ツ 
ールに対して少なからぬハンデを背負って 
いることは否定できない。 

ドロー系ツールで作った部品の持つメリ 
ットと,部品を作るための手間とを天秤に 
かけると,ドロー系にすべきかペイント系 
にすべきかを選択できると思う。おそらく, 
描く対象によって両者を使い分けることに 
なるだろう。 

簡単な図の類であれば,ドロー系を使う 
のが断然有利である。特に CANVAS PR 
0-68 K は文字も使える。線や文字の位置 
を微調整するのもドロー系なら楽である。 

速度につし、て 

操作体系とは別の意味でも CANVAS P 
RO -68 K はかったるい。処理速度が十分 
だとはいいがたいのである。リアルモード 


の描画が遅いのはある程度しかたないとし 
ても,スケルトンモードの遅さはもう少し 
なんとかすべきではなかったか。 

むろん,簡単な図形のうちはそれほど気 
にならない。が,ちょっと凝ったものを作 
ろうとすると制御点がどんどん増え,編集 
も描画も遅くなっていく。データディスク 
についてくる干支や恐竜やトランプなどの 
ドローォブジ ヱ タトを読み込んで編集して 
みると,そのことを実感できる。アウトラ 
インフォントの処理もけっこう重くなる。 

複雑なものほど遅〈なるというのは,グ 
ラフィ ックツールに とっては困りものであ 
る。ちゃんとした絵というものは,往々に 
して複雑な絵柄になるものだから,作業が 
佳境に入ってからの速度にはシビアなもの 
が要求される。 

ペイント系のツールでは,絵柄が複雑だ 
ろうと簡単だろうと,描画にかかる時間は 
変わらない0ドロー系のツールでは,ある 
程度遅くなるのは避けられないし,しかた 
ないのだが, ユーザーにストレスを 与えて 
しまうほど遅いものであっては困るのだ。 

通常の絵を描くには,まだまだペイント 
系の ツールの ほうが使いやすいといえる。 

CANVAS PRO -68 K は,製図道具で描 
いたような正? i 萑な直線や曲線にむしろ向い 
ているといえ よう。 

CANVAS PRO -68 K が遅いのは , CPU 
が 10 MHz の68000だからだとは思いたくな 
い。確かに, X 68000 の処理スピードという 
のは今では決して速い部類ではない。特に 
グラフィックを扱うときに弱さを露呈する 
というのは否定できない。だが, X 68000 の 
グラフ イ ックアプリケーシヨンが遅いのに 
はそれだけでない,別の理由があると思う。 
なに かにつ けてへ ビーデュー ティなのだ。 
考えられるすべての機能を盛り込んだので 
はないかと思わせるものがある。しかも処 
理は生真面目にやっている。いつかも書い 
た力' 場面によっては,「真面目」というの 
はほめ言葉でもなんでもない。馬鹿正直な 
処理は遅いだけであり,.誰も認めてくれは 
しない。ューザーの知らないところでどん 
なずるをしてもいいから,とにかく速度優 
先で作ってほしいものだ。どうせ相手はプ 
リンタなのだから,いっそのこと白黒に限 
定するというのも手ではある (MacDraw 
と差別化できなくなるかもしれないが)。 

外部とのインタフェイスが弱いそ! 

CANVAS PRO -68 K にはビットイメ 
ージそのものを編集するペイントセルがあ 


特集ドロー系グラフィックツ_ルの魅力 39 








るが,これの操作性はそれほどほめられた 
ものではない。そこで,この方面なら Z’s 
STAFF などのペイント系ツールにお任せ 
となる 。 CANVAS PRO -68 K は, Z’sST 
AFF の画像ファイル ( ZIM ファイル)を 
8色に変換してペイントセルに取り込むこ 
とができる ( ZIM ファイルのほかに , GL 
3フアイルや NEW PrintShop PRO -68 IC 
のファイルを取り込むことも可能である)〇 
CANVAS PRO -68 K と Z ’ sSTAFF は, 
正反対の性格を持っているだけに,組み合 
わせて使うとお互いの不足したところを補 
い合う名コンビになる。……はずだったの 
だが,これにはひとこといっておかなくて 
は収まらないものがある。 

なんなんだあの8色変換は。 

いくらなんでもひどすぎないか。65536 
色が泣く。要するに, RGB の最上位ビット 
だけを残し,あとはバッサリ,なのである。 
取り込んだ絵ははっきりいって悲惨である。 

ペイントセルが,印刷したときの解像度 
も粗く,ドロー系ツールの精神にマッチし 
ていないことも考えると,あまり真剣にサ 
ポートしたくないというのもわかるのだ力 5 ', 


もっと自然に変換しようと思っても,ほん 
のちょっとの手間ですむ。65536色モード 
の画像を読み込むことはわかっているのだ 
から,デイザ ( 8色のドットをうまく混ぜ 
合わせて疑似的に中間色を出す仕掛け)を 
かけて取り込むモードをつけてもバチは当 
たるまい。 

スキャナもサポートしているが,これも 
同様。やはり最上位ビットのみしか見てい 
ない。ただしスキャナの場合には抜け道が 
ある。たとえばシャープのスキャナである 
CZ -8 NS 1 の場合,スキャナのほうでデイ 
ザをかけてくれる。スキャナがデイザをか 
けるモードになっていれば , CANVAS P 
RO -68 K に取り込んだあともそれほどひ 
どい画面にならずにすむ。しかしこれはあ 
くまで対症療法,賢い生活の知恵にすぎな 
い。だいたい,こんなことはソフトのほう 
で対処すべきことだと思う。 

また,スキャナ機器との接続は RS -232 
C のみで,パラレルボードは無視されてい 
るようだ。、高価なパラレルボードを買った 
人は泣〈に泣けない。いまどき,98ユーザ 
一でも RS -232 C の転送速度で我慢できる 


夢の(でもないけど)輪郭}由出 


スキャナから画像をペイントセルに取り込む。 
その画像から輪郭抽出してドローオブジェクト 
を生成する機能はぜひとも欲しかったところ。 
いまのところは,取り込んだ画像はペイントセ 
ルに張り付いているだけ。それ以上の発展もな 
にもない。 

これをドローセルに持っていけるととてもあ 
りがたい。そうなれば,手書きの下絵をスキャ 
ナで取り込んでドローセルに移し,ド ローツー 
ルならではの編集機能を存分に揮うことができ 
る。色を変えたり,拡大縮小変形したり,思い 
のまま。正直にいって, ドロー 系の ツー ルは, 
いったん部品を作ってしまえば使いでがあるの 


だが,部品を作るまでの段階がペイント系に比 
ベて遥かに苦しい。たとえば線丨本引くにして 
も,その手間は数倍である。 

また,困ったことに,絵が複雑になってくる 
と, CANVAS PRO -68 K の編集作業はどんどん重 
くなってくる。部品の数が増えてくるのだから 
当然なのだが,これまたペイント系に比べてポ 
イントの低いところではある。この苦行(失ネし) 
をある程度軽減してくれそうなのが輪郭抽出で 
ある。決して不可能な処理ではない。事実,世 
の中には取り込み画像から輪郭抽出してアウト 
ライン データを 自動生成するソフト ウェア もあ 
る。 


僕©しいドロ ーツール 


CANVAS PRO -68 K はポップアートツールだが, 
僕が望むのは, CANVAS PRO -68 K が目指すとこ 
ろとは少し違っていて,とにかく軽い作図ツー 
ルである。仕事柄,簡単に立ち上げられて簡単 
に作図のできるツールが欲しいのだ。たとえば, 
MicroEMACS で原稿を書いていて,ちょっと図 
を描く必要が出てきたときにそれを痛感する。 
こんなときは,マウスプレーンで動作して簡単 
に呼び出せるようなものが嬉しい。一般的には, 
レポートや論文で使用する図版,企画書などで 
必要なプレゼンテーション用のビジュアルなど 
に利用できるといえばいいだろうか。結局 , M 
ac Draw みたいなものになったりして。 

カラーなどいらない,白黒で十分。カラー印 
刷はなにかとコストのかかるもの。ポップアー 
トツールとしての CANVAS PRO -68 K は優れてい 


る。機能も多い。しかし,それよりも,おもい 
っきり軽い常駐プログラムのほうが使える場合 
もあるのだ。色数と機能の多さの分だけ重くな 
っているのがなんとも惜しまれる。 

それほど豪華なものはいらないのだが。 

.t m'i ••な.,、:‘.い.〉.パ.厂… # * . 

U3 : 



I 

卿•価 


一'-- . 薇^^^^^#^ 


人は少ないというのに . 。 

* 

それから出力である。めぼしいプリンタ 
には出力できるようになっている。しかし, 
とりあえずはいっておこう。 

レーザープリンタに対応しないのか? 

ドットプリンタや熱転写プリンタの印刷 
はだいぶ綺麗になってきた0しかしレーザ 
ープリンタに比べればまだまだである〇レ 
ーザープリンタの解像度は,おおよそ24ド 
ットプリンタの2倍ある。したがって,印 
刷の品質にも相当な差がある。その差は, 
見ていて痛々しくなるほどである。僕は T 
eX を使うようになってからこのことを痛 
感した 。 CANVAS PRO -68 K は仮にも 
ポップアートツールである。最高の品質の 
出力が求められる。でなければ,デザイナー 
には使えない。すくなくともドロー系のツ 
ールは,レーザープリンタ程度の出力がで 
きるようになるとさらにおいしく使えるの 
に,と思、うわけ/ご。 

確かに,レーザープリンタは誰もが持て 
るものではない。最近はかなり安くなった 
力 5 ',まだまだ手は出ない。それは認める。 

シヤープだってまだ X 68000 対応のレーザ 
ープリンタなど出してはいない。しかし, 

それでも対応していて損はないのではある 
まいか 0 また, PostScript * 1 などのスク 
リプト言語に対応した形式での出力など, 
できると嬉しいのだが……。 

それから画像ファイルへの出力がない。 
CANVAS PRO -68 K の目的は印刷にあ 
る。だから画像を出力する必要がないとい 
うのはわかる。それはそれでいい。しかし, 
これはあくまで個人的な意見だが,ドロー 
系ツールで作られた部品は紙の上だけでな 
<いろいろな方面に出ていっていいものだ 
と思う。印刷コマンドのほかにフルカラー 
の画像ファイルを作るコマンドもあると, 
新しい使い道が見つかりそうなものだ。た 
とえばなにかのタイトル画面に使おうと思 
ったら,イメージファイルの形で持ってお 
けるととても便利だと思う。 

総じて , CANVAS PRO -68 K は自己 
完結の傾向が強い。外部とデータをやりと 
りすることに消極的であるように思われる。 
ひととおりは用意されているのだが,本当 
にひととおりでしかない。 

賢い付吉合い方 

CANVAS PRO -68 K にはたくさんの 
編集モードがある。編集にあたっては,こ 
れらのモードをうまく切り替えながら作業 


40 Oh! X 1991.2. 












するのが贤い。それを忘れると,とんでも 
なく重たいものになってしまう。たとえば, 
ある程度作業が進むまでは他のセルを表示 
しないで編集する,とかいったことを知っ 
ていると,作業がかなり楽になる。本文で 
は,そうしたことはわかっているものと思 
って話を進めている。どうせ実際に使って 
みないとわからないことでもあるし。 

やっぱり資源を食ラのだ 

メモリが 1 M バイトの X 68000 で CANV 
AS PRO -68 K を動かすのはちょっとつら 
い。 ASK 68 K も組み込めないかもしれない。 
ついでにいうなら,アウトラインフォント 


CANVAS PRO - 68K の編集速度はほめられたも 
のではない。しかも,ドローオブジェクトを構 
築していって好きな形を作るのはしんどい作業 
である。よほど熟練しないと CANVAS PRO-68K 
を使いこなせるようにはならないだろう。しか 
し,そこはちゃんと解決策が用意されている。 
なにも ユーザーがすべて 作る必要なんてないの 
である。 

CANVAS PRO-68K は部品を扱う ツールな ので 
あるから,その部品をたくさん用意しておけば, 
それほど手間をかけなくても絵は描けそうだと 
いうことになる。標準でついてくるデータディ 
スクには干支など,いくつかの ドロー オブジェ 
クトが入っていて,それらを呼び出せば年賀状 
のワンポイントくらいすぐ作れるわけだ。 

CANVAS PRO-68K で読み込んですぐ使えるデ 
—夕集の存在はありがたい。面倒な入力作業は 
— 切なし。もちろん,たくさんあるドローオブ 
ジェクトの中から好きなのを選んで組み合わせ 

印刷例 CZ-8PC3 使用(原寸) 


はファイルで持っているので,ハードディ 
スタの使用を勧める。 RAM ディスクなら 
もっといいが。特にアウトラインフォント 
をフロッピーで使うのはかなりきついと思 
う。文字を扱わないつもりであればいいが, 
グラフィックツールがメモリを喰うのは常 
識なので,拡張はしておくべきだろう。 

結論 

CANVAS PRO -68 K は,ポップアー 

ト ツールと いうだけあって,楽しいイラス 
トレ ー シヨンやポストカ ー ドなどを作るの 
には向いている。基本的にマウスがあれば 
ほとんどの操作はできる。いろいろな文字 


ドローグラフィックデータ集 



ることもできる。レイアウトを決めるのはユー 
ザーなのだ。あとから文字を入れることだって 
簡単。 

標準でついてくるデータだけではどうしても 
いろいろな用途には対応しきれないということ 
で, CANVAS PRO-68K で使えるドローグラフィ 
ックライブラリも用意された(別売)。すでに発 
売されている。このグラフィックライブラリは 


が使えるし,印刷もそこそこ美しい。 

本職のデザイナーには周辺機器との入出 
力関係で弱い点もある。また,ビジネス文 
書(それも固めの)で使おうという人には 
ちょっと向いていない0個人でイラストレ 
ーシヨンを描〈人や,綺麗なハガキや案内 
4犬をいろいろ f 乍る人に CANVAS PR 0-6 
8 K はお勧めである,と結論しておこう。 


*1PostScript は,レーザープリンタなどを制御 
する言語のひとつ。フォントの設定はもちろん, 
直線や曲線の描画などもサポートしている。スタ 
ック型言語で,再帰呼び出しも可能である。 C 曲 
線などといったフラクタル図形も数行の PostScript 
のプログラムで描くことができる。 NeXT などでは, 
画面表示にも Display PostScript が採用されている。 




2巻構成になっている。第I巻が個人向けのデ 
一夕集,第2巻がビジネス向けのデータ集とい 
うことになっている。定価はいずれも8,800円 
(税別)。 

収録されている絵柄は比較的真面目なものが 
多い0本当に 「イラストレーション」 といった 
感じの絵柄である。まあ,変にウヶを狙ったも 
のだと使い回しがきかないだろう。 

(年賀状)このデータ集には,時候のあいさつ 
に使うものがいくつか入っている。毛筆体の「賀 
正」もそのひとつ。干支を入れてしまえば立派 
な年賀状だ。もっと凝った台詞を入れたいとき 
は,テキストセルで作って入れれば完璧だ。 

(暑中見舞い)暑中見舞いの決まり文句も毛筆 
体で入っていた。あとはこれに夏の風物をみつ 
くろってやれば暑中見舞いのできあがり。 
(その他)クリスマス関係のもあるが,もう過 
ぎてしまったな。そうそう,ノてレンタインデー 
のもあった。これはまだ間に合うぞ(いったい 
誰が使うんだ……)。 


POP 


フォ 






ADDRESS 


ABCDEFGHIJK 

LMNOPQR5TU 

VWXYZ 

atcJefgkijklmnopcjrstuvwxyi 


特集ドロー系グラフィックツールの魅力 41 






















3 D 倶楽部は,1年ほど前に紹介した, 
ツァイトの 3 D ポリゴンモデリング&レン 
ダリングシステムである 「 Z’sTRIPHON 
Y DIGITAL CRAFT 」 のデータ集であ 
る。制作の大変な 3 D データが多数用意さ 
れていて,ユーザーの負担を減らすように 
なっている。 

3 D 倶楽部は「リビング編」と「ダイニ 
ングキッチン編」の2つがすでに発売され 
ていて,以後,「地図編」「プライベートルー 
ム編」と続く 〇 

「リビング編」と「ダイニングキッチン編」 
は,その名のとおり,多くの種類の家具の 
3 D データを用意してある。部屋のデータ 
も用意してあるので, Z ’ sTRIPHONY を 
起動して部屋のデータを呼び出し,続いて 
家具のデータを次々に呼び出して部屋の中 
に配置するだけで,すぐにでもインテリア 
デザインに利用することができるようにな 
っている。適当に構図を決めてレンダリン 
グすれば部屋の完成予想図が手軽に作れる。 

CG の生命はデータにあり 

コンピュータグラフィックの作品の出来 
栄えを決めるものは何であるかご存じだろ 
うか。高度なレンダリングアルゴリズム? 
そうではない。 

それはデータである。少なくとも僕はそ 
う理解している。データというのは,いう 
までもない力 ? ,物体の形状であり,ポリゴ 
ンの色や属性であり,質感を表すパラメー 
夕であり,マッピングであり,時には視点 
の座標にまで及ぶ。ューザーがいじれる範 
囲のものすべてが,作品の成否を決める鍵 
を握っているのだ。 

むろん,描画 ァルゴリズム も重要な役割 
を 演じているのだが,最終的にはデ ザ イナ 
一の センスに かかっている。 リアルなレン 
ダリングを可能にしたといううたい文句で 
CG システムを 発表しても,その サンプル 
が貧弱なものだったら,誰が使ってみたい 
と思うだろう 0 ユーザーにアピールす るた 
めには,そのへんのことが実は重要なのだ。 
これは 3 D コンピュータ グラフィックだけ 
でなく, 2 D グラフィック ツール やその他 
のさまざまな ツールについて 当てはまるこ 
とだと思う。サンプルを充実させるのは成 


Z’sTRIPHONY DIGITAL CRAFT データ集 

ボ U ゴンデータ 「 3D 倶楽部 J 


Tan Akihiko 


丹明彦 


功するための重要なファクターのひとつで 
はあるまいか。 

ツ ァイトはデータライブラリの重要性を 
よく承知しているようだ(この 3 D 倶楽部 
も,そうした思想の表れと見ることができ 
ょう)。 

まず扱えるデータはいろいろな形式でフ 
ァイルに保存しておける 0 たとえば Z’sST 
AFF にしても, ZIM ファイルの形式はひ 
と通りではない。圧縮/非圧縮あり,矩形/自 
由形状ありといったぐあいだ。 

次に,アウトラインフォントを多数用意 
している。 Z ’ sSTAFF には第1水準のゴ 
シック体および明朝体のアウトラインフオン 
卜が付属しているし,最近発売された「書 
体倶楽部」は毛筆体などのフォントを集め 
たものだ。 

そして,これが一番重要な点なのだが, 
これらのデータは,ソフトを問わず,いや 
それどころか機種すらも問わず,自由に利 
用できるのだ。 ZIM ファイルは Z’sTRIP 
HONY や Z’sWORD JG で取り扱えるし, 
アウトラインフォントは Z ’ sSTAFF や Z’s 
WORD JG , そして Z ’ sTRIPHONY のど 
れでも使える。そして, PC -9801 シリー 
ズでも同様に使えるのである。そのために 
使い勝手が多少落ちている嫌いはあるもの 
の,この方針は立派である。 

データは使い回しのきくような形式にし 
ておき,できる限り共有化する。当たり前 
のことのようでありながら,それすらも守 
れていないソフトウェアのどれほど多いこ 
とか。 

ユーザー 待望の データ 集 

しかし,非常に重要な要素であるコンビ 
ュータグラフィックのデータ作り(モデリ 
ング)は,非常に大変な作業であるのもま 
た事実。人は 3 D モデラーを前にして,必 
ず一度は石になる。パッケージに印刷され 
ている滎華なサンプルと,自分の作ったガ 
ラクタとの間のギャップに溜息をつく。だ 
がそれでいいのだ。誰でもそこから始める 
のだ。そして, いつかは モデラーを手足の 
ように操り,力 1 つての目標であったパッケ 
ージのサンプルを超える作品を作るのであ 
る。 


今回紹介する 3 D 倶楽部は,まだ溜息レ 
ベルのユーザーにとっ て福音といえるもの 
である。もちろん使いこなしを究めた ユー 
ザーにとってもおいしい。ともすれば複雑 
になりがちな 3 次元のポリゴンのデータを 
制作する手間を省き,またそこまで Z’sT 
RIPHONY の操作に習熟する余裕のない 
ユーザー にも気軽に使えるデータ集である。 

氺 

机や椅子を始めとして,ひと通りの家具 
は揃っている。種類も豊富だ。 

この春進学や就職のために上京してくる 
人,フジテレビの恋愛ドラマによく出てく 
るような ワンルームマンシヨンの 生活に憧 
れている人,そんな人はこの 3 D 倶楽部で 
おしやれな都会生活の設計でもなさっては 
いかがだろう。……と,こういうと茶化し 
ているように聞こえるかもしれない。実は 
そのとおりである0レイアウトに悩むほど 
広い部屋に住める人なんてそう多くはない 
だろう。 

むしろ,もっと大人のユーザーに勧める 
べきかもしれない。結婚して新居を構える 
という幸せもの,また家を新築した人,引っ 
越す人,単に部屋の模様がえをする人でも 
いい。 実際に家具を配置する前に,まず Z’s 
TRIPHONY と 3D 倶楽部でテストする, 
という使い方ができる。 

しかし大事なものが欠けている。 X68000 
だ。僕のような人間は,部屋を設計する 
のにまず X68000 を中心に考える。快適な 
作業場を作るための配置は,そのあとからつ 
いてくる。どうせなら X68000 のある部屋 
を設計したいものだ。というわけで X68000 
の 3 D データ もよろしく。 



•3D 倶楽部各 9,800 円(税別) 
ツァイト ©03(3299)0461 


42 Oh! X 1991.2. 















特集 1 グラフィックの“実験的”手法 


Z’sSTAFF 支援ツール Z ’ s-EX 


1月号付録ディスクの Z’s — EX は,裏画面のサボート,3次 
元変形マッピングなど,さまざまな拡張機能を実現します。あ 
なたの Z ’ sSTAFF はも5パワーアップされたでしよ5か。 
今回はそこで盛り込まれた機能の解説を行いましよろ〇 


Tan Akihiko 丹明彦 


先月号のディスタで配布した Z’sSTAF 
F 支援 ツールである Z ’ s - EX の,重い重い 
技術解説をお届けする,確かにプログラム 
も重いが,解説はもっと重いのだ c お覚悟を。 


基礎知識編 


Z ’ s-EX は, Z’sSTAFF PRO -68 K (以 
下 Z ’ sSTAFF ) の作業に割り込んで,便 
利な機能を使うようになっている。実は, 
これはとても楽で,ずるくて,しかし極め 
て有用な手口である。なぜなら,基礎とな 
る グラフイックツールを 作る必要はないか 
らである。1から作らずに好きな機能を追 
加できるというわけである。 Z’sSTAFF 
の惯れた環境から離れずにすむというのも 
メリットだ。 

Z ’ sSTAFF を&張するうえで, Z’sSTA 
FF の動作にはいくつか押さえておかねば 
ならぬことがある。 Z ’ sSTAFF は,アプ 
リケーシヨンとしてはかなり資源を赘沢に 
使っているほうで,およそ音源関係以外の 
あらゆる資源を使っているようである。テ 
キスト画面までしっかりと徴用していて, 
printf () すら使えない。 

以下で述べていることは,今回のプログ 
ラムを作る上の下敷きにさせていただいた 
PICFILER (電脳倶楽部掲載)から大部 
分の情報を得ている。 

待避画面 

Z ’ sSTAFF は,ご存じのとおりウイン 
ドウが山ほど開くシステムである。どのく 
らい開くかというと,スクリーンを覆いつ 
<してもまだ開けるくらい開く。 

さて,ウインドウシステムで頭の痛い問 
題は,ウインドウを閉じたとき,または移 
動したときに,そのウインドウの下にあっ 
たはずの画面をどうやって復活させるか, 


ということであろう。ウィンドウを消した 
らその跡は真っ黒だった,というのではウ 
イン ドウ システムの 意味がない0 

まず思いつくのが,ウィンドウ1枚を開 
くごとに,その下にあった画面を記憶する 
という方法だ。ところがこれはだめ。ウィ 
ンドウが1枚しか開けないシステムならそ 
れでもよいが ( PC -9801 用の Z’sSTAFF 
では確かウィンドウは1枚だったが……), 
同時に2枚以上なら破綻する可能性がある。 
次のシチユエーシヨンを想像してみてもら 
いたい0 

1) ウインドウ甲を開く。ウインドウ甲の 
待避領域にはその部分の G - RAM の内容 
が入る。 

2) ウィンドウ乙を開き,ウィンドウ甲と 
一部が重なるように移動する。ウィンドウ 
乙の侍避領域にはその部分の G - RAM の 
内容,すなわちそこにあった画面とウィン 
ドウ甲の一部が入る。 

3) ウィンドウ乙を上にする。 

4) ウインドウ甲を閉じる。ウインドウ甲 
が消えた跡には,もとの画面を侍避領域か 
ら読みだして G - RAM に書き戻しておく 
が,ウインドウ乙のほうが上にあるのだか 
ら,ウィンドウ乙と引っ掛かる部分にまで 
書いてはいけない。 

5) ウィンドウ乙を閉じる。侍避領域には, 
ウインドウ甲の一部が 
が入っていたため,そ 
れまで G - RAM に書 
き戻されてしまい,画 
面にはウインドウ甲の 
一部がごみとなって残 
されることになる。 

もちろん,もう少し 
真面目に処理すればこ 
のようなことは起こら 
ないのであるが,ただ 
でさえ重いウィンドウ 
システムの 処理がもっ 
ともっと重くなる。 2 
枚ならまだそれでもい 


いが,これが何十枚ともなると想像するだ 
けでも恐ろしい。 

それに,こちらのほうがもっと深刻なの 
だが,画面を覆いつくしてもまだ余るほど 
のウィンドウ面積分の侍避領域が G-RA 
M の容量を超えてしまうのは当然のことな 
のである。だから,いっそのこと待避画面 
をどこかに1画面分気前よ〈取ってしまう 
のがお徳用なのだ。そうすれば,ウィンド 
ウを閉じたときの書き戻しはその待避領域 
から正直に読んでくればすむ。そのウィン 
ドウと重なっているウインドウ(こういう 
のをオーバーラップしているという)を書 
き直すだけの手間ですむ。 

この侍避領域には, G - RAM と同じ512 
K バイトが必要である。しかし,そんな大 
きさの配列を取るのは,当時 (1987 年)の 
ユーザー状況を見れば犯罪に等しかったと 
思う。メインメモリが1 M バイトが圧倒的 
多数派だった頃のことである。 

そこで,どの X 68000 も持っている広大 
な領域, G - RAM と同じ 512 K バイトの領 
域,すなわちテキスト VRAM がまるごと 
待避領域に当てられた。線を引いたりペイ 
ントしたりといった動作は,この待避領域 
と G-RAM (当然ウィンドウが表示され 
ていない部分のみ)の両方に対して加えら 
れる。また,両方に描画しないと本当に描 



袠画面を3 D 変形してマツビング 


特集 Z ’ sSTAFF 支援ツール Z ’ s-EX 43 


















DIFFERENTIAL 


いたことにはならない。たとえば G — RA 
M だけに描いたとしたら,自分では描いた 
つもりでも,ウィンドウを動かしたり消し 
たりしたときにボロが出る。もうひとつ, 
細かい話だが,テキスト VRAM は,単な 
る配列として使う(当然表示もしない)の 
で,テキスト VRAM の同時アクセスモー 
ドをキャンセルしておくこと0拡張プログ 
ラムを作る際には,この2つのことに注意 
されたい。 

こうしてくれたおかげで,今回の Z ’ s-E 
X のウィンドウも待避領域を取ることなく 
実現できた。これがメインメモリの配列だ 
ったら問題は難しくなっていたことだろう。 
テキスト VRAM のアドレスは決まってい 
る力 5 ',配列のアドレスはわからないからだ0 

蛇足ながら付け加えておく。はじめから 
テキスト VRAM にウインドウを開けば, 
そんな巨大な侍避領域なんていらなくなる, 
と思った人は,非常に鋭い。確かに原理的 
にはそのとおり。テキストにウインドウを 
開けば,どこで開こうが閉じようが , G — 
RAM は一切傷つかない。ウィンドウどう 
しが才ーバーラップしている場合の処理だ 
け考えておけばいいことになる。 

しかし,こと Z’sSTAFF の場合はそう 
うまくは いかない 0 つまり, パレット ウイ 
ンドウはどうするの?というわけ。あの 
極彩色のウィンドウを表現するためには, 
どうしても G-RAM が必要なのだ。テキ 
スト VRAM を侍避領域に使うというのは, 
さんざん悩んだうえでの選択だったのだろ 
う。ま,どちらにしてもテキスト VRAM 



FLARE 


をウインドウ表示に使うか侍避領域に使う 
か,の差で使用する資源に変わりはない。 

マスキング 

Z ’ sSTAFF は,画面の任意の領域にマ 
スタをかけてその下の画面を保護すること 
ができる。マスク領域には一切の描画がで 
きない。 

Z ’ sSTAFF をお使いの方はご存じであ 
ろうが,マスクをかけた領域は青くゆっく 
りと点滅している。これは割り込みを使っ 
て細か〈パレットを変えることで実現して 
いる。 

ここで問題になるのは,いったいどの色 
のパ レッ トを変えているのかということ。 

Z ’ sSTAFF を起動するときにスペース 
キーを押していると, G - RAM を保存し 
たまま起動するのだが,その際輝度ビット 
( 1 ピクセルは 16 ビット =0 〜 65535 で表現 
されるが,その最下位ビットが輝度ビット 
に割り当てられている)が立っているピク 
セルにマスクをかけるようになっている。 

しかし,輝度ビットの立っているピクセ 
ルだけの色を変えるのは難しい。単純計算 
でも 32768 色あるのだ。ところで, X 68000 
は 65536 色モードでもパレットは変えられ 
る力 5 ',それは制限つきで,ひとつのパレッ 
卜を変えると同時に 256 色が変わってしま 
うのだ。このへんはややこしい。 

代表として,パレットコード$0001のパ 
レットを変えている。しかし,そのために 
は G - RAM の中で輝度ビットの立ってい 
るすべてのピクセルのパレットコードを$0 
001に変えねばならない。しかしうかつに 
それをやると,今度はマスクを取り去った 
ときに保護されていた絵が出てくれないと 
いうことにもなる0ちなみに,ハ。レットコー 
卜''$0001 とは, 黒の輝度ビットを立てたの 
と同じこと。その輝度ビットを取り去れば, 
マスク部分は真っ黒になってしまうことに 
なる。 

そこで,またテキスト VRAM の出番で 


ある0テキスト VRAM のほうでは,マス 
クに対応する部分に輝度ビットを立てるだ 
けで,マスク以外の部分には手をつけない。 
マスクを取り去るときは,テキスト VRA 
M から読み出して書き戻せばよい。 

マウスカーソル 

待避画面とマスキングからわかるように, 
Z’sSTAFF では G-RAM は表示にのみ使 
われていて,実際の作業はテキスト VRA 
M で行われていると考えるのが無難である。 

となると,玉突き式に新たな問題が浮上 
する 0 マウスカーソル である。 

通常のシステムでは, マウスカーソルは 
テキスト VRAM を使って表示している。 
ところがそのテキスト VRAM は, Z’sST 
AFF では待避画面に使われてしまってい 
る。1バイトたりとも余っていない。そこ 
で今度はスプライトが浮上してくることに 
なる。 

Z’sSTAFF を 使ったあとに適当な スプ 
ライトエディタを 立ち上げれば, スプライ 
卜に定義されている パターンが わかる。 マ 
ウスカーソルはパターン コード 0のスプラ 
イ トに定義されている。 マウスカーソルの 
表示 ルーチンを フックして, テキス ト VR 
AM に カーソルを 書き込むかわりに スプラ 
イ トを表示しているのだろう。 Z’sSTAF 
卩力 ? 768父512 ドッ トモー ドでは 動作し ない 
(CRT コントローラに 悪いこと を すれば, 
768 X 512 ドッ トモー ドでも 65536 色の表示 
はできる)というのは,実はこの スプラ イ 
卜がネックになっているからである。 

また Z’sSTAFF では,なにか時間のか 
かる作業をしている と きは マウスカーソル 
が腕時計の形になる。それもパターンコー 
ド〇のスプライトのパターンを書き換えて 
いるだけ。 

ところで, いくつか ある メニュー のうち, 
G-RAM を 使っていないものがひとつあ 
る。画像取り込みがそれ。この メニュー だ 
けは,マウス カーソルと 同様にスプライト 
を 使っているようだ。 イメージュニットを 
使うだけに,ウィンドウを避けて取り込む 
ということができないせいであろう。 

キー入力 

メニューバー(「ファイル」「パレット」 

「ペン」……と書いてある細長い棒)を消 
したり出したりするのにはスペースキーを 
使う。このスペースキーの読み取りには I 
OCS コールの B BITSNS (IOCS コール 


44 Oh! X 1991.2. 










番号 $04) を使っている。 Z ’ sSTAFF はこ 
の IOCS コールを頻繁に行っている。 

そこで,あるキーを押したときに拡張ル 
ーチンが起動するように設定したい場合は, 
この IOCS コールの ベクタを書き換えると 
いう方法でキー入力を楚い取ることができ 
る。むろん,その起動キーでなかった場合 
は, Z ’ sSTAFF に戻り,そのキー入力を 
伝えてやる必要がある。そうでないと,ス 
ペース キーが効かなくなってしまうからで 
ある。 

Z ’ sSTAFF でキー入力をする場面はい 
くつかある。たとえば文字入力がそのひと 
つだが,日本語 FEP の ASK 68 K は幸いに 
して B _ BITSNS を呼んではいないような 
ので,心配することはない。 


そこで Z ’ s — EX の制作 


以上のことを念頭に置きつつ, Z ’ s-EX 
を制作した。以下は各プログラムの解説で 
ある。プログラムリストは大きすぎてちよ 
っと誌面には敝せられないが,すべて先月 
号の付録ディスクに ( DISK 2) に収録さ 
れているので各自参照してほしい。 

PICFILE R は常駐プログラムであった 
が, Z ’ s - EX はそうしなかった。 Z’sSTA 
FF をチャイルドプロセスとして呼び出す, 
ごく普通の実行ファイルである0どうして 
こうなったかというと,ひとつは常駐解除 


謹賀新年 PRO - S 日 K の□旧 K 2 に 
収録されている Zs - EX の内容 


Zs_EX 

— mapicon.dat 
— Zs . EX.x 
— SOURCE 

—— window.c 
—— effect.c 
— picfilerx 
—— mapping.c 
—— • zs.c 
—— rfbuild.c 
—— startup.s 
—— xpic.s 
—— transter.s 
— rev.s 
— compile.bat 
—— makefile 
—— rfbuild.x 


を忘れたときに思わぬトラブルの種になる 
ということ。もうひとつは,常駐プログラ 
ムを書くのはそれなりに面倒だったからで 
ある。 

Z’s-EX は, Z’sSTAFF の待避画面と 
は別にもう 1 枚の襄画面を取る。 512K バ 
イトの配列をメインメモリに取るなどとい 
う,なかなか凶悪なことをしている。この 
ためメインメモリ 1M バイトの X68000 での 
実行はほぼ絶望的である(とはいっても, 

もともと 1M バイトで Z’sSTAFF を動かす 
のはかなりきついものだった)。 

ウィンドウマネージャもど^? 

- winaow.c - 

Z’s-EX は,同時に 1 枚のウィンドウし 
か開かないが,とりあえずウインドウシス 
テムである。 

「使い回す可能性があるシステムのコーデ 
ィングは1回はやり直したほうがいい」と 
いう鉄則はやはり真実だったょうで,作っ 
たあとで振り返ると,ここはこうすればよ 
かった,あそこはああすればよかった,と 
いった後悔が渦巻いている。ウィンドウマ 
ネージャを作った段階では完璧だと思って 
いた力す,そのあとを作っているうちにあち 
らこちらと矛盾が出て,そのたびに対症療 
法を繰り返した。その結果,少々汚いプロ 
グラムになっているのだが,ちょっと見に 
はそれほど汚くはない。 

さて,各ウインドウの上にはいくつかの 
アイテムが並んでいる。それをマウスで指 
図1ウインドウマネージャのアイテム管理情報 


定する。というだけなら簡単だが,操作性 
や見た目のよさを重視するならば,ことは 
そう単純にはいかない。 

• マウス カーソルをアイテムの上に持って 
きたとき,表示が反転するアイテムとしな 
いアイテムがある。反転しないアイテムの 
代表は,タイトルバーである0ここをつか 
んでドラッグするとウインドウを動かせる。 
いちいち反転するとうっとうしい。 

• マウスボタンを押したら即時呼び出し元 
に復帰するべきアイテムとボタンを離すま 
で待つべきアイテムがある。即時復帰する 
アイテムの代表は, PICFILER のファイ 
ルウインドウ。左ボタンまたは右ボタンで 
スクロールす るのだが,これは押しっぱな 
しにしたときには連続してスクロールする 
のが望ましい。 

以上のようなことを考え合わせて,ウイ 
ンドウのアイテム管理情報は図1のように 
してある。プログラムリストの解読をする 
際には,参考になることだろう。 

この情報は,新しいウインドウを開くた 
びに更新される。グローバル変数にいちい 
ち代入しなぉすなどという間抜けなことを 
している。まとめて構造体で持ってぉかな 
かったのは失敗だったのだが,今となって 
は手遅れ。 

ともかく,ウインドウマネージャもどき 
は,この情報を参照しながら,マウスカー 
ソルの座標を読み取り,必要ならアイテム 
を反転させて,マウスボタンを押されたら 
それなりの処置をとる。そして,押された 


typedef ITEM short[l0]; . ひとつのアイテムにつき 10 ワードの属性を要する 

int win _ xO, win_yO;. ウィンドウ左上の座標 

int win_x, win__y; . ウインドウのサイズ 

int win_n; . アイテムの数 

ITEM win_i[win_n]; . 各アイテムの情報 


i 番目のアイテムの情報の内訳 (0 彡 i 彡 win _ n - l ) 


win _ i [ i ][ 0 ] 

最下位ビットが丨(つまり奇数)なら, 

このアイテムの上にマウスカーソルがあるときに表示が反転する。 

特に,この値が 255 のときはウインドウクローズ, 

254のときはウィンドウ移動としておく (特に意味はない)。 

win — i [ i ][ I ] 

この値が0のときはマウスのポタンが押されたら即時復帰する。 

I のときはボタンを離すまで待つ。 

(win _ I [ { ][ 2 ], win — i [ i ][ 3 ]) - ( win _ i [ i ][ 4 ], win _ i [ i ][ 5 ]) 

マウスカーソルがこのレクタングルで示される領域の中にあれば, 

このアイテムが選択されているとみなす 0 

( win — i [ i ][ 6 ], win _ i C i ][ 7 ]) — ( win _ i [ i ][ 8 ], win — i [ i ][ 9 ]) 

アイテムが選択されているとき,表示を反転させる領域を示すレクタングル。 
win_i [ i ][0]が偶数(反転しない)の場合は意味を持たない。 


特集 Z ’ sSTAFF 支援 ツール Z ' s-EX 45 



















ボタンの状態とアイテムの番号を戻り値と 
して呼び出し元のルーチンに返す。 

ウィンドウの移動については專用のサブ 
ルーチンを持っている。動かす前のウイン 
ドウをテキスト VRAM の内容で塗り潰し 
て,新しい位置にウィンドウを表示しなお 
すという方法は間抜けなので,できる限り 
ブロック転送を使っている(この部分はア 
センブラ)。 

ウインドウの クローズは アセンブラで 書 
いた転送ルーチンを呼んでいるだけ。 

ほかに,ちょっと重大そうな処理に関し 
ては実行する前に「本当にいいか」と確認 
を求めさせたい場合も出てくる(うっとう 
しいから不要だという意見もある。確かに 
いえてる )0 そのサブルーチンもウインド 
ウ関係に含めている。実は,この確認ウィ 
ンドウもウインドウマネージャで処理して 
いるのだ。 

文字表示は12ドットとしている。シング 
ルウィンドウなのだから文字を小さくして 
もたいしてメリットはないのだが,ウイン 
ドウは小さくまとまっているのが好きなも 
ので,あえて16ドットを使わなかった。こ 
こでは BASIC ライブラリの symbol () 関 
数を使うという真似をしている。だから実 
は何ドットの文字でも手間はたいして変わ 
らない。テキスト画面が使えないという時 
点で,そもそも printf () に逃げることが 
不可能になっていたのだから。 

PICFILE 闩 

- picffler.c - 

プログラムは長めだが,たいしたことは 
していない〇 pic フアイルのロー ド/セーブ 
にしても,オリジナルの xpic . s のルーチン 
を呼んでいるだけである。ただし, xpic.s 
のうち,スーパーバイザモードに入る/スー 
パーバイザ モー ドから抜けるという部分は 
図 2 マッピング座標系 
図版は CANVAS PRO-68K で作成 


取り除いてある。これは, Z ’ S-EX がすで 
にス ー パ ー バ イザモードで 走っ ている から 
である。 

ほかに気をつかったところといえば,フ 
アイル名をキーボードから入力させるのに, 
やはり scanf () も使えないので,自前で文 
字列入カルーチンを作ったことと,拡張子 
を強制的に“ . pic ” にしたことくらいであ 
る0ファイルウインドウにしても,デイレ 
クトリと“ *. pic ” のファイルしか表示しな 
い。これはことによると迷惑だったかもし 
れない。 

マスキングの ロード/セーブに 関しては, 
まだサポートしていない。 

ALTERNATE SCREEN 

- zjc - 

裏画面と表画面の切り替えを行う。処理 
の中身は単純な転送である。つまり,裏画 
面の配列の中身と侍避画面(テキスト VR 
AM ) の中身を入れ替える。 G-RAM に 
も一緒に転送している。ただし,マスキン 
グ部分(輝度ビットが立っている部分)に 
ついては, G-RAM にはそのままでは転 
送しないで,パレットコードを$0001に強 
制的に変更してから転送している。 

MAP 

- map.c.transfer.s - 

裏画面を1枚の長方形に見立て,表画面 
に任意の位置•角度で張りつける。 Z’sST 
AFF には矩形領域の自由変形というのが 
あるが,これはそれとは少々異なる。あく 
まで3次元空間内に琪画面を置いたと考え 
ているので,裏画面には遠近感がついてい 
るはずである。 

この処理は,3次元コンピュータグラフ 
イツ クでいえばテクスチャマッビングに相 
当する c ただ,アルゴリズムは多少異なる。 


一般のマッビングには透視逆変換が必要な 
のだが,それと同じことを,別の方法で実 
現している。 

長方形の枠(反転したラインで表示する) 
を移動/回転させ(マウスで押したアイコ 
ンに対応した動きをさせる),位置を決め 
たら本処理に入る。 

処理はややこしいので,粗筋をまず述べ 
る。 

1) まずソリッドスキヤンコンバージョン 
で,画面上の長方形の中にあるピクセルを 
ピックアップする。そのピクセルの座標を 
p ( x , y ) とする(ピクセル ( x , y ) にマスキ 
ングがかかっていたなら,処理をスキップ 
し,次のピクセルの処理に移る)。 

2) 次に,ピクセル ( x , y ) が裏画面のどの 
ピクセルに対応するかを求める。この座標 
を ( u , v ) とする(ピクセル ( u , v ) にマスキン 
グがかかっていた場合も,処理をスキップ 
する)。 

3) ピクセル ( u , v ) の色をピクセル ( x , y ) 
に書き込む。 

これを繰り返すだけなのだが,このなか 
でどこが面倒なのかというと,なんといっ 
ても 2) の座標変換の部分である(図2)。 

もともとは長方形であった裏画面は,作 
業画面のなかでは変形している。作業画面 
という「窓」を通して見える3次元空間を 
考える。そこに裏画面を浮かべているのだ, 
と思うことにしよう。 

座標変換処理の第1段階として,ピクセ 
ルに対応する3次元空間内での位置を知る。 
これは,裏画面の長方形を含む平面の方程 
式と,視点から窓の中の一点(ピクセル) 

へ伸ばした直線の交点を求めればよい。視 
点は, Z ’ s - EX を使ううえでは特に意識す 
る必要はないが,図3のように固定してあ 
る0視点を決めれば,あとはレイトレーシ 
ングと同じ要領で視線を発生させ,平面と 
の交点を求める。こうして求めた平面上の 
座標を ( xi , yi , zi ) としよう。 

第2段階として,上で求めた座標を裏画 
面の実際の座標系に変換する。裏画面の位 
置と角度を決定した時点で,裏画面の四隅 
の (3 次元空間内の)座標はわかっている。 
したがって, ( xi , yi , zi ) が長方形の中の 
どのあたりにあるかは,簡単な内分比の計 
算で求めることができる。 

以上のことを図4にまとめてある。ただ 
し図4の式はあくまで原理的なもので,実 
際に C でコーディングするときはもっと効 
率的にするためにいろいろと姑息なことを 
している。ただ,一番大事なテクニックで 
あるはずの整数化を怠っていたりする(反 



(511,511) 


(511,511) 


作業画面 


裏画面 


46 Oh! X 1991.2. 














省 )。 

なぉ,裏画面の位置はいっでも初期化で 
きる。初期化すると,表の作業画面と裏画 
面がぴったりと重なる格好になる。このと 
きに限り,遅い座標変換を使わずに,直接 
転送するようにしている。ここはアセンブ 
ラで書いてあるので,そこそこの速度は出 
ている。これは画面合成に多用している。 

MASK PAINT 

- zs.c^pev.s - 

これは素晴らしい手抜きをしている 。I 
0 CS コールの ペイン トルー チンを使って 
カラーコード $0001で ペイント している。 
ただ,これだけではテキスト VRAM 上の 
待避画面にマスク情報が伝わらないので, 
メインメニューに 戻るときに G — RAM 全 
体をサーチし, カラーコードが $0001 のピ 
ク セルに 対応する待避画面の ピクセルの 輝 
度ビットを立てるようにしている。マスキ 
ング ペイ ント から メイ ン メニューに 戻ると 
きに1〜2秒間マウスカーソルが時計マー 
クになるのはこのためである。 

EFFECTC 1] MONOTONE 

- effect.c, rev.s - 

ピクセルの色成分を R , G , B としたとき, 
そのピクセルの輝度は, 

M =(0. 11 x B +0.30 x R +0.59 x G ) 

で与えられる。青,赤,緑の色成分は等価 
ではない。目に自然な輝度を求めるために 

図3視点の座標系 


は単なる平均を取ってもだめで,この式の 
ように重みをつける必要がある。実数を使 
うのはいやだったので, 

M =(28 x B +77 x R +151 x G )/256 
と,8ビットのゲタをはかせて計算してい 
る。これにより,輝度 M に〇から31の値が 
得られる。それをいちいちシフトしてグレ 
ースケールのカラーコードを{乍ってもいい 
のだが,たかだか32個なのだから,テープ 
ルにした。テーブルは呼び出し元 ( C のプ 
ログラム側)で用意し,その先頭アドレス 
をアセンブラのプログラムに渡すようにし 
ている。したがって,テーブルを作り変え 
れば,セピア調変換も可能である。 

テーブルを用意するという考え方は,本 
誌1990年10月号の X 68000 マシン語プログ 
ラミングからもらってきた(テーブルを使 
うくらいのことを自分で思いつかなかった 
というのがそもそも問題なのだが)。 

EFFECTS RANDOM FRACTAL 

- efl^t.c - 

本誌1990年9月号のグラフイック特集で 
紹介した,自然物の表現に便利なランダム 
•フラクタル処理も組み込んでみた。まっ 
たく同じ処理をしているが,処理を整数化 
して少し速くなったことと, ランダム•フ 
ラクタル格子を生成する処理を別プログラ 
ム ( rfbuild . x ) にして独立させたという 
ところが違うといえば違う。 

高速化したぶんにはなんの迷惑もかから 


ないが,ランダム•フラクタル格子の初期 
化が Z ’ s - EX 本体から行えないというのは 
少々まずいかもしれない。なぜなら,毎回 
同じパターンが出てくるからだ。変形の強 
さなどのパラメータは変えられるようにし 
てはあるが,パターンまでは変えられない。 
ランダム • フラクタル格子は先月も説明し 
たとおり,別のデータフアイル rf.dat にな 
っている。したがって,パターンを変えた 
いときは, rfbuild.x に別のパラメータを 
指定して rf.dat を作り直せばいいのだが, 
Z ’ s - EX を抜けなくてはならないというの 
が間抜けである。なにぶん一瞬で実行が終 
わるプログラムではないので, Z ’ s - EX の 
中に組み込むのをやめてしまったというの 
が真相ではある。 

EFFECT[3]:FLA 闩 E 

- e'fWDt.c - 

フレア処理は,画面の一部を光源に見立 
て,その周囲を淡〈光らせる。実は,フレ 
ア処理を設計する段階で,この「画面の一 
部」をどうやって指定するかを決めるのに 
少々«んだのだ。光源といっても,点光源 
ではおもしろくない。自由形状にできると 
いうのは必要であった。結局はマスキング 
部分を光源と思うことにしたのであった。 
画面全体を処理するのは遅くていやだった 
ので,マウスで指定した矩形領域の中のマ 
スキング部分だけを光源にする。 

あるピクセルのフレアの輝度は次のよう 



裏画面 


特集 Z’sSTAFF 支援ツール Z’s-EX 47 















にして)长める。そのピクセルを中心とする 
ある広さの領域をサーチし,その中でマス 
キングがかかっているピク セイレの 数を数え 
る。次にその数を適切なフイルタに通して 
フレアの輝度に変換する。 

サーチする広さはランダム.フラクタル 
と同様のパラメータになっていて,変える 
ことが可能である。 

フイルタとなる関数は,いろいろと試し 
た結果,サーチする領域の面積を S , その 
中のマスク領域の面積を m として, 

f ( m )=1—( s — 3 x m ) 2 / s 2 (m < s /3) 
( m ^ s /3) 

と決めた。ピクセルの近くのマスキング部 
分がサーチする領域の3分の1を超えた段 
階でそのピクセルのフレアは最大になる。 
経験的に見て,それくらいが自然なようだ。 

高速化の話。マスク領域は効率的に数え 
ないとどうしようもなく遅〈なってしまう 
のだ。初期バージョンでは,ピクセルの周 
りのマスク領域を正直に数えていた。とこ 
ろが,ちょっと考えるとわかるのだが,あ 
るピクセルの周囲のマスク領域は,そのひ 
とつ前,つまりその左隣のピクセルのマス 
ク領域と非常によ〈似ている。ほとんど同 
じものを何度も数えるのは間抜け以外の何 
物でもない。そこで,できる限り過去の結 
果の脫歴を取っておき,数えるのは新しく 
サーチする部分だけにした。このため,若 
千ループの組み方が複雑になっている。 

最後に,使ううえでの注意。まず,光源 
にしたい部分にマスクをかけてお〈〇それ 
は Z ’ sSTAFF のマスクでもいいし, Z’S-E 
X のマスキングペイントでもいい。それか 
らフレア処理を呼び出して,マスクをかけ 
た部分の外をマウスで囲めば処理が始まる。 

光源の色は,そのマスキング部分の下の 
ピクセルの色を兒て,いちばん明るいもの 
を代表として採用するようにした。といっ 
ても,実は手抜きで,カラーコードが最大 
のものを取っているため,明るい青より暗 
い緑のほうを採用してしまう。というわけ 
で,光源にしたい部分にはなるべく原色を 
使うというのが対応策となる。 

フレア処理は,扱いがけっこう難しい0 
処理の中身を知っていればコント ロールし 
やすくなるというわけでもない。むしろ経 
験的に使い惯れていったほうがいいだろう。 

EFFECTC4] DIFFERENTIAL 

- effSt.c - 

耳惯れない名前ではある 。 differential 
は微分という意味だが,それほど難しいも 
のではない。隣接するピクセルとの輝度の 


図4座標変換 

梓の中心の座 « を ( c,, c> ,c,) とする。 

梓の四隅の中心からの相対座»を {f,[j),f v [j],f,\j)) とす S。_;• = 0,1,2,3 で . それぞれが左上 , 右上 , 左下,右下 
隅に対応す 6 〇たとえば左上隅の座播は ( c t + / t [0),c v + /ytOj.c, + ム [0 】)とな 6 。 

平面の法 W べクトルを (n x ,n t ,n t ) とする。 

中心の座 « は移勖コマンドで 58 化し,梓の隅と法说は回転コマンドで変化する(回転コマンドは中心まわりの回転 
である)。 

図 3 より,ビク七ルの座祺 ( i,y) に対して ( 0Sz,y$ 511), 

= (doublc)(z - 256) X 1.5 
yd = (doublc)(256 - y) 


ここで imW を 1.5 倍しているのに tt, ディスプレイの坩描比を補正する意味がある。 
祝点は (0,0,w,), ただしル = 512 。 

平面の方程式は, 

(* - c z ) + n t ( y - c t ) + n a (x - c ,) = 0 

となる。 

刪(谊 « 〇の方程式は次のように « される。 


(!)=(:) 


この 2 式を解いて, 

. _ n z c t + n K c„ + n,c, - n,v, 
+ n v y d + rijV, 

を得る。 

祝 W と平而の交点の座祺 ( r,, yi , む)は,いま捋た t を用いて . 



以下は,枠の左上からの相対座供で考える。つまり,枠の左上が麻点 1 C なるように平行移動を行う。枠の左上の座 
供 (*•//, V *//,*.//)は次のように計算される。 

(*•// \ ( «?, + /*[〇) \ 

VoJf = c »+/ v (0| 

\ *PU / 、ら+ /“〇] ノ 

交点の座» ( , yi , ) の表式も次のように変える。 


( Xi \ ( 

f x * - x oU \ 

1 /. = 

Vi - v»n 

\ x * 1 ' 

K 勿 -**" ノ 


悴の四隅の座 W と,平面と祝«との交点の座»から,マッピング座を針算する。 たいていの *合は,3 : 座» 
と y 座 W だけから朴箅することができる。 

( Z {, t / i ) は,梓の四隅の座换(ムレ•】,/»[;•])を u < :1 - Ui および:1 - v , に内分している。 { x „/ j , y 0 / j ) からの相 
対位!*で考えると, 

\ vi) ~ {m-/y[o)) '{m-m) 

行列の形式 K 改めると, 

(^i\.( /*[»]- /.1 〇 ] JM-IM V \ 

V yj ' V fA l \- fy [ o ) fM-m )\^ ) 

したがって ,( u < ,叫)は 

(^\^( m-m M2]-mo] V 1 ( x < \ 

\vi) V All]-4(0] API-MO] ) [v り 

そして,目的のマッビング座標 ( U , V )は, 

( 卞卜…ハ 

、《 ノ V 512 x «;< ノ 


となる。 

なお, 2 次の正方行列 



として求める C とができる。 



以上は TEX による出力です 



(f*l0] t f r [0] f f*[0]) 


1 -v 


(f*l3],fr[3].f*[3]) 


(fx[2],f r [2j,f*[2j) 


裏画面 


1-U 


( fx [ lhf r [ i ], fz [ ij ) 


48 Oh! X 1991.2. 





差を計算し,モノクロ32階調で表示してい 
るにすぎない。 

実行にあたっては,まず指定された領域 
を白黒の輝度に変換する。これは本質的に 
必要な処理ではないのだが,たとえば赤成 
分の差だけを表示するよりは,赤青緑の3 
成分を合わせた輝度のほうがより自然なの 
ではないかという判断による。なによりも, 
特定の色成分に偏っているような絵に強い 
のだ。白黒化してしまえば,赤青緑のどの 
成分も等しい値なので,輝度の差を求める 
のに,青成分の差を取ってもかまわない。 

白黒化がすんだら本題の微分処理に入る。 
隣接するピクセルと書いたが,画像は平面, 
つまり2次元なので, x 方向の輝度変化と 
y 方向の輝度変化を取る。それを足したも 
の(本当は単純に足すことは感心しないの 
だが,結果はまともなのでこれで通した) 

をそのピクセルでの微分とするのだ。 

D ( x , y )=( M ( x + l , y )— M ( x , y )) 

+( M ( x , y + l )— M ( x , y )) 

こうして微分 D ( x , y ) を求めることはで 
きるが,それを視覚化するにはもうひとひ 
ねり必要だ。なぜなら,輝度変化は増加と 
ばかりは限らず,減少もありうるからであ 
る。画像は常に明るくなったり暗くなった 
りを繰り返す。すると, D ( x , y ) が負の値 
をとることも十分に予想できる。対して, 


とにもかくにも, Z’sSTAFF の最大の魅力は使 
いやすさ。これに尽きる。よく,ゲームバラン 
スという言葉が使われるが,これはグラフィッ 
クツールでもビジネスソフトでも重要なファク 
ターだ。いくら機能が強力であってもバランス 
が悪くてはうまく使いこなせない。 

ところで,機能ということに関して私が日頃 
から意識している評価基準は, 

1) どうしても不可能なものよりは,多少使い 
づらくとも可能なもののほうがよい。 

2) 可能なものどうしであれば,強力なものよ 
リ使いやすいもののほうがよい。 

という2点である。 

ペイント系のグラフィックツールの場合,で 
きる限り自由に美しい絵を描きたいという人に 
とって,使える色数は少ないものよりは多いほ 
うがよいし,解像度も低いものより高いほうが 
いい。逆に最悪でも好きな場所に好きな色の点 
を打つ機能さえあれば,自由な絵を描くことは 
不可能ではない。極端な話だが,これが第一の 
前提だ。 

Z’sSTAFF は,32768色もの色が使え,サイズ 
も 512X1024 ドット。そのうえで,32768色を扱 
うための機能が一通り揃っている。つまり,努 
力すればどうしても Z’sSTAFF で描けないものと 
いうのはほとんどないことになる。 

Z’sSTAFF にはいわゆる多彩な表現といった機 
能がほとんどない。発表時には,ボカシの利く 
ペンやグラデーションだけでも相当びっくりし 


輝度は常に0以上でなくてはならない。 

ここで解決策は2つある。ひとつは,微 
分の絶対値をとること。これならつねに0 
以上になる。もうひとつは,微分にある定 
数を足したものを輝度とするというもの。 
ゲタをはかせて負の数をむりやり正の数に 
してしまおうというわけ。今回は後者を採 
用した。 D が負の場合(輝度が減少傾向に 
ある)は暗く,正の場合は明るく表示され 
る。このほうが自然であろう。 

処理自体は単純だし,そこそこ速いが, 
けっこう妙な効果が出ておもしろい。いっ 
てみれば,石造りのレリーフといった風情 
である。もし気が向いたら, Z’sSTAFF 
のウィンドウを閉じないで S キーを押して 
Z ’ s-EX を呼び出し,ウィンドウに対して 
この微分処理を施してみてもらいたい。 Z ’ 
sSTAFF がたちまちにして SX-WINDQ 
W に変身することであろう。 

開発を終わって 

今回のディスク関係では,僕にしては珍 
しくアセンブラを多用した。アセンブラを 
使ってみて改めてありがたく感じるのは, 
68000のレジスタの多さである。たいてい 
の処理はワークエリアを用意する必要がな 
い。必要なパラメータはレジスタにしまつ 


たものだが,特殊効果に属する画像処理機能に 
関する弱さは当初から指摘されていた。 

にもかかわらず, Z’sSTAFF を凌駕するものは 
現時点ではないといってよい。機能的には優れ 
たものが今後とも出てくる可能性があるが,使 
い勝手の面でこれを超えるものを作るには相当 
に腰を据えてかからねばならないだろう。 

しかし,その Z’sSTAFF にも大きな弱点がある。 
入出力関係である。 CANVAS PRO-68K の場合に 
も指摘されていることだが,スキャナからの取 
り込み,そしてプリンタのサポートだ。今月号 
で紹介されている Fine Scanner-68 の場合は専用ソ 
フトが強力なのでデータレべルの連動で十分活 
用できるが,シャープ純正のカラーイメージス 
キャナを利用する場合にはモノクロの画像取り 
込みで苦戦を強いられるだろう。また,ブリン 
夕も48ドットのハードコピールーチンがサボー 
卜されておらず,24ドットでのブリントアウト 
にしても必ずしも優秀とはいえない。 

Z’sSTAFF PRO-68K は描画面では実に素啃ら 
しい ユーザー インタフェイスをもっている。グ 
ラフィック機能に魅力を感じて X68000 を購入 
した人は,このソフトぐらいはぜひ手に入れる 
べきだ。58,000円と多少値は張るが,改めてX 
68000の価値を実感できるはずである。機能面 
では要望も多いが,それらは今回の Zs-EX のよ 
うなかたちでもサボートできるだろう。しかし, 
ツァイトには入出力の面でもう一歩がんばって 
バージョンアップを果たしてもらいたい。 (T) 


ておけ ばいいの だ。できる限り レジスタを 
使うことで,高速化も図れる。 

それから,デバッガには感謝しな〈ては 
なるまい。実は,デバッガをデバッグに使っ 
たのは今回が初めてなのだ。エラーが出る 
ときはプログラムが悪いのだから,直ちに 
エディ タに戻って ソース リストとにらめっ 
こするという作法で今までやってきていた。 
いや,やってこれていた。 

ところが,今回は正体不明のエラーが多 
発するのに悩まされた。僕にとって Z’sST 
AFF はまったくのブラックボックスなの 
で,そのエラーの原因がアルゴリズムにあ 
るのか Z ’ sSTAFF との相性の悪さにある 
の力 1 ,自信力 ? 持てなかったのだ。いつもよ 
り早いディスクの締め切りも迫った頃,窮 
しても通じなかった僕は,ついに Z’sSTA 
FF がなにか悪いことをしているのではな 
いかと疑ってしまったわけだ。結果的には 
それはまったくの見当違いだったのだが, 
それくらい僕はあせっていたのだ。 

そんな折り,「デバッガを使え」という 
忠告を受けた。 Z ’ sSTAFF はテキスト画 
面をワークエリアに使っているので,コン 
ソールは使えない0そこで,出力はリダイ 
レクトでプリンタに出すことにし,文字ど 
おり手探りでのデバッグ作業となった。今 
思えば, RS -232 C で別のコンピュータに 
つないでターミナルデバッガ'にするという 
方法もあった。マシンが2台必要になるが, 
マシン室には X 68000 が何台もある。 

ブレイクポイントを設定し,レジスタの 
値をにらんでいるうちに,とんでもなく恥 
ずかしいバグを見つけた。さっそく溃した 
ら,ちゃんと動いてくれた 3 

その昔,本誌で「7度デバッグして人を 
疑え」という祝一平氏の格言を聞いた。そ 
の頃の僕はひとりの読者にすぎなかったが, 
今になってその言葉を実感したのである。 

それからメモリを 4 M バイトに拡張して 
おいて本当によかった。 MicroEMACS か 
ら COMMAND . X を呼び出して,そこで g 
cc を走らせる。コンパイルが終わったらそ 
こから Z ’ s - EX を実行する。もちろん, Z ’ 
s - EX はチヤイルド プロセスで Z’sSTAF 
F を呼び出す。これだけやってもまだメモ 
リに余裕はある。アンドウが使えるくらい 
余裕がある。 

しかし,このために,消費する資源が犯 
罪的に大き〈なってしまった。少し反省。 

氺 

Zs — EX は今後もいくつかの拡張機能を 
用意する予定である。ご意見や,欲しい機 
能などがあればお寄せいただきたい。 


Z’sSTAFF PRO — 68 K の魅力と問題点 


特集 Z,sSTAFF 支援ツール Z’s-EX 49 



レイトレーシングにお t 、て 半影を生成す る 

HASH.X 


Ichien Topu 


一圓亨 


1月号のデ^^ク 1;^® 録されていた半影つきレイトレーシング 
システム HASH で看 1 。コンパイル方法やアルゴリズムなど, 

1月号で十分に説明できなかった分を今回まとめて解説します。 


ソースリストなどは1月号のデイスクを参照してください。 


レイトレーシングの立場 

レイトレーシング……「力」で3次元空 
間の数式を目に見える形に変換するアルゴ 
リズム0しかし残念ながら,レイトレーシ 
ングが CM や映画の1シーンなどに使われ 
ることはあまりないようだ。 

その最大の理由は,レイトレーシングカ 5 ' 
宿命的に持つ計算時間の問題だろう。計算 
時間だけで選ぶなら, Z バッファ法*1やス 
キャンライン法などのほうが明らかに速い。 
まして, Phong シェイデイングなどのシェ 
ーデイング補間法(スムースシェイデイン 
グ)* 2 でも使われた日には,(反射や屈折は 
別として)レイトレーシングと変わらない 
画像を,レイトレーシングの何倍も短い時 
間で生成できるのだ! CM や映画で使うと 
なるとほんの数秒のアニメーションで何十 
枚もの静止画が必要となるわけだから,1 
枚の描画に何時間もかかるレイトレーシン 
グではアニメーションに向かないのだろう。 

では,「レイトレーシング」の立場はどう 
なるのだろう。実用的でないアルゴリズム 
として,消え去るしかないのだろうか? … 
…この答えは簡単に出すわけにはいかない。 
実際に,レイトレーシングの強力な表現力 
のゆえに,膨大な時間をかけて作成された 
アニメーションもあるのだ。 

前置きが長くなった力す,ここで今回の 
テーマで ある。 レイトレーシング がその膨 
大な計算時間と引き替えに手に入れた,強 



滑らかな影 


力な「表現力」をさらに強化してしまおう 
というのだ。しかも,計算時間の悪化を最 
小限に抑えて。 


* 丨 Z バッファ法については参考文献 2) を参照 
してほしい。 

* 2 Phong シヱーディングについて も参考文献 
2) を参照してほしい(手抜きか? いやいや,私 
の専門外なので……)〇 

なにを強るのか7 

これまでにレイトレーシングの作品(画 
像)を見て,なにか不自然に思ったことは 
ないだろうか? 「 CG なんて全部不自然だ」 
などと意地悪をいわないように (ヨロ シク)。 

不自然なのだ。影が。なんであんなにシ 
ャー プなエッジができるんだ? 現実世界 
の影はエッジがぼんやりしていて,影の境 
界線を定規で引くようなわけにはいかない 
はずだ。レイトレーシング(に限らず,多 
くの CG のアルゴリズム)で,シャープな 
エッジを持った影が見られるのは,光源が 
大きさを持たない「点光源」として扱われ 
ているためである。 

よし,影処理を強化しよう。でもどうやっ 
て?まず頭に浮かんだのは分散レイトレ 
ーシング* 3 だ。分散レイトレーシングなら, 
光源が大きさを持つために生ずるぼやけた 
影(半影)を表現できる0しかし,分散レイ 
トレーシングでは「計算時間の悪化を最小 
限に」という条件にあてはまらない。この 
とき,ふと頭に浮かんだアルゴリズムは, 
かなりの近似と扱える形状の制限を受けつ 
つも十分現実的な半影を生成できると推察 
された。さっそくプログラミングにかかり, 
‘ HASH ’ をものの2週間で完成してしまっ 
た。ちなみに, ‘ HASH ’ という名前は ,“ H 
Alf-SHadow ray tracing system ” から 
つけたものだ。 


* 3 分散レイトレーシング (distributed ray tracing), 
分配レイトレーシングと呼ばれることもある。ア 
イデアは,ひとつのビクセルを計算するのに,そ 
のビクセル内に K 本の視線(レイ)をランダムに発生 


させ,ピクセルの色を K 本のレイの色の平均とし 
て求めようというものだ。分散レイトレーシング 
はアンチェイリアシング効果を持っているのだ。 
また,レイの分散(分配)は丨次レイだけでなく, 
2次以降のレイに対しても適応される。すなわち, 
なんらかの物体に当たって反射するレイもまた, 
正反射方向を中心にしてランダムに L 本分散され 
るのである。これによって,金属表面の鈍い映り 
込みを表現することができる。 

これと同じことが屈折光にもいえて,この場合 
には*り硝子のような鈍い透過を表現できる。肝 
心な影処理だが,これもやはり,大きさを持った 
光源に向かって M 本のシャドウフイーラをランダ 
ムに発生させて, M 回の影処理を平均することに 
よって半影を生成する。ほかに,時間軸に関して 
ランダムに N 点サンプリングし, N 点の平均を取 
ることによって動きのブレを捕らえること(モー 
シヨンブラー)も分散レイトレーシングでは可能 
である。分散レイトレーシングは,アンチェイリ 
アシング.鈍い反射.鈍い透過 • 半影 • モーシヨ 
ンブラーと,正に究極のレイトレーシングである。 
しかしながら,ランダムに発生させたレイの平均 
でピクセルの色を求める以上, K,L, M, NO 
値はある程度大きくなければならない。したがっ 
て,レイの数は極端に增加し,計算時間も極端に 
長くなるのである。実際には,工夫を凝らしてよ 
り少ないレイで実現しているらしい。 

半影を生成するレイトレーシング 

▼ 

レイトレーシングの中で半影を生じるア 
ルゴリズムには,前節で紹介した分散レイ 
トレーシングのほかに円錐(コーン)レイ 
トレーシングがある。これは1984年に J . A 
manatides によって発表されたアルゴリ 
ズムで,レイ(視線:直線)の代わりに円 
錐ビームを使う方法である。この方法も分 
散レイトレ ー シングと同様に,アンチェイ 
リアシング.鈍い反射.鈍い透過.半影な 
どの効果を持っ。 

分散レイトレーシングにせよ,円錐レイ 
トレーシングにせよ,演算時間が通常のレ 
イトレーシングの数倍から十数倍になるこ 
とは必至で, 10 MHz の68000で実現するの 
は難しい。今回のプログラムでは,アンチ 
ェイリアシンク、も純い反射も純い透過もモ 
ーションブラーも表現できないが,半影だ 
けは高速に表現できる。 


50 Oh! X 1991.2. 














一般の影処理(全影処理)のアルゴリズム 

すでに述べたとおり,一般のレイトレー 
シングでは光源として,大きさを持たない 
点光源を想定している。したがって,影処 
理は次のように行われる。 

ある物体と視線との交点がもとまると, 

この点から点光源へ向けてシャドウフィー 
ラと呼ばれる視線を発生し,シャドウフィ 
ーラとほかの物体との交点を調べる(図1)。 
もし交点があれば,光源からの光が交差し 
た物体によって遮られることになるから, 

もとの点は影になる。 

この方法は,シャドウフィーラと物体と 
の交点が「ある」か「ない」かによって影 
を生成するので,一様な影となり半影は生 
じない。 

半影処理のアルゴリズム 

現実世界で半影を生じる原因について, 
光波の回折によるものなどいくつか挙げる 
ことができる。今回の半影処理で対象とな 
っているのは光源が大きさを持つために生 
ずるもので,光源として球状の物体を想定 
している(図2)。 

いま,ある物体と視線との交点: P を考 
え, P 点が影になるかどうか調べるため P 
点と球状光源の中心を結ぶ線に垂直に投影 
面: A を設定する。 P 点を視点, A 面を視 
野面とする隠面問題を解決できれば, A 面 


に投影された光源の面積: S と他の物体に 
隠されて残った部分の面積: S ’ を知るこ 
とができる(図3)。光源の明るさを Il ! t と 
するなら, P 点における光源光の強度 :I 
LIT-P は次式により得られる。 

I LIT-P = I LIT X ( S ’/ S ) 

プログラムでは球状光源の各部から〈る 
光はいたるところ一定と仮定している。実 
際には光源の中心付近からくる光と周辺部 
からくる光とでは強度が違うだろうから, 
投影面上の面積: s ’ について積分しなけ 
図 E 光源が大ささを持つために生じる半影 



ればならない。さらに,光源の中心付近と 
周辺部からの光とでは P 点への入射角が異 
なるため,正確:なレンダ、リング* 4 を行おう 
とすると「陰 j 処理 ( shading ) に対しても 
S ’ について積分しなければならない。し 
かし,これらはいたずらにレンダリングの 
計算速度を低下させるうえに,たいした効 
果も期待できな L 、ので今回は目をつぶった。 


*4 簡単に説明すると,つやなど物体の質感を含 
めた色を決定する過程のことをいう。 



図1通常の影処理 



a ) 影になるケース 


b ) 影にならないケース 


特集 HASH.X 51 











隠面消去問題の解法 

昔から隠面問題* 5 を解決するアルゴリズ 
ム について さまざまな方法が考えだされて 
きた0もちろんレイトレーシングもその方 
法のなかのひとつである。ほかに Z バッフ 
ア法•スキャンライン法.リストプライオ 
リティ法•奥行き法など,さまざまな方法 
がある。今回も半影処理において投影面: 
A 上にとった mxm のラスタ* 6 について 隠 
面消去を行うためにいずれかの方法を選ば 
なければならない。2次曲面などを対象と 
するときにはレイトレーシングを選ぶこと 
になる力 5 ',この場合大変な計算速度の低下 
を覚悟しなければならない* 7 。今回のプロ 
グラムでは,曲面を球面の みに 限定して, 
高速な隠面消去のアルゴリズムを使用する 
ことにする。 

なんらかの 3 D グラフィックプログラム 
を組むとするならば,上記のような隠面消 
去の アル ゴリズムを選んで真面目に隠面問 
題を解かなければならないだろう。しかし 
いまは影処理を行うことが目的なのである 
から,なにも真面目に隠面問題を解く必要 
はないのた;視点と光源があって,その間 
に光源からの光を遮る物体(球)があるのか 
ないのか,あるのなら,その球はどのくら 
い光源を覆い隠すのか。それだけがわかれ 
ばよぃ。 

今回のプログラムでは,物体(球)の視線 
方向の奥行き(デブス: depth ) と球状光源 
のデブスとを比べてその物体が影を作るか 
否かを判定している。 

図3半影処理の原理 


*5 正確には「隠面消去問題」。ある点から物体を 
見たときにどの面が見えるか,あるいは見えない 
かを判定し,見える面だけを表示すること。 

*6 点描画面のことをラスタという。 

*7 この場合,力づくで m x m のラスタについて 
レイトレーシングを行うのもよいが,それではと 
ても実用にならないので,実際には分散レイトレ 
ーシングに頼ることになるだろう。 

光源の投影一球面の投影=半影 

ここで,今回の半影処理の手順を具体的 
に示そう。 

まず,前節の A 面に mxm のラスタを設 
定し,ここに光源を投影する。光源は球状 
光源を想定しているので,投影された光源 
は円になる。したがって mxm のラスタに 
対して円を生成すればよい。あたかも,グ 
ラフィック画面に‘ circle ’ 命令で円を描く 
ょうに。 

次に,物体(この場合は球面)と光源の奥 
行きを比べる。物体が光源と視点の間にあ 
れば,その物体は光源を覆い隠す可能性が 
あるので A 面に投影する。その像は一般に 
回転を伴った楕円になってしまう,このス 
キャン コ ンパ、ージョン は非常に手間がか 
かるから,投影した像を円に近似して光源 
の場合と同様に mxm のラスタ上に円を生 
成する。このとき,光源による円と物体に 
よる円を別々の記号で表しておけば,あと 
で影にならなかった光源の面積: S ’ を知 
ることができる。 


*8 直線や円などを画面上のドットに近似する手 
順をラスタ化といい,スキャンラインの順序で画 
像を生成することをスキャンコンバージョンという。 


なお,円のスキヤンコンバージョンには 「Bresenh 
am の増分法」を用いた。 

光学モデル(拡散反射) 

拡散反射には, Lambert の拡散反射モ 
デ'ルを使用した0 

I DIF = C prmXIlitX ( L . N ) 

I DIF :拡散反射強度 
I LIT : 光源光強度 
C PRM :物体の色 
L : 光源の存在する方向 

N : 法線ベクトル 

ただし,| L | = | N | =1 
( L - N ) は, L と N の内積, 

| L |はベクトル: L の大きさを表す0 

鏡面反射(八イライト) 

鏡面反射には, Blinn の鏡面反射モデル 
を使用した。 

Ispc = RxIlitX ( H . N) g 


I SPC : 

鏡面反射強度 


R : 

反射率 


G : 

光沢(大—つやあり— 2 0 


つやけし—小) 


H : 

H = ( V + L )/ 

1 V+L 

V : 

視点の存在する方向 

ただし 

| H | = | V | = 

| L | = 


半影レイトレーシングの実験 

プログラムはすべて1月号の付録デイス 
クの中に収録されており, C 言語のソース 




a ) 光源と物体の投影 b ) 投影面上の像 


52 Oh ! X 1991.2. 











プログラムは 5 つのモジュールより成り立 
っている。 

1) メインモジュール : hash.c 

2) サブモジュール : hash _ sub.c 

3) デイフアレンスアブソーバ: differ , c 

4) フレームバッファドライバ: frame.c 

5) べクト ル演算 モジ ュール : vector.c 
プログラム全体の規模からみると,かな 

り大きいように思えるが,実はレイトレー 
シング本体は‘ hash . c ’ と ‘ hash - sub . c ’ の 
2つのモジュールだけで,残る3つのモジ 
ュールは, 

• differ , c 

システム,ライブラリなどの「違い j を 
吸収する 
• frame , c 

グラフィックの取り扱いを汎用化する 
• vector , c 

3次の ベクトル 演算を行う 
のように,汎用になっている。半影を生成 
する レイトレーシング としてはかなり コン 
パク トにまとまっているのではないだろう 
か。 

なお, ‘ frame . c ’,' vector . c \ ‘ differ . c ’ に 
関しては,苦労して汎用に組んだものなの 
で愛機 X 68000 のためにも,多くのューザ 
一に使用してもらいたいと思う。ついては, 
Oh ! X への投稿に関しては「一圓亨の ‘ vect 
or . c ’ を使った」とひと言書いてもらえれ 
ば使用は自由である。もちろん,個人的な 
使用に関してはこの限りではない。どんど 
ん使ってほしい。 



コンパイルするには, 5 つのソースファ 
イルに各モジュールの定義ファイル (has 

図4鏡面反射モデル 


h . h , frame . h , differ . h , vector . h ) を加 
えた 9 つのファイルが必要である0ここで 
は上記のファイルが適当なデイレクトリに 
あって,カレントパスがそのディレクトリ 
まで通っているものとする。コンパイラは 
GCC または 0 S -9 上の MW - C を使用する。 
GNU - C : 

gcc nash.c hash - sub.c frame.c dii 
fer.c vector.c -lbas 
0 S -9/ X 68000 + MW-C : 

cc hash.c hash - sub.c frame.c diff 
er.c vector.c 

-l = lib / xos 9- pss.l 

各 コンパイラ とも,最小限必要なオプ 
ションのみ示した。各自必要に応じてほか 
のオプションを付けてほしい。なお , 「XC 
ver 1.0」のバグのため 「XC ver 1.0」で 
は コンパイルで きない 。 「 V er 2.0」 につい 
ては手元にないので未確認である。もし, 
XC しか手元になくて,それでも‘ HASH ’ 
を使いたいという,嬉しい読者がいたら, 
誠に申しわけない力 ? 「人間プリプロセッサ」 
をしてもらいたい。ここで問題になってい 
る XC のバグというのは条件付き コンパイ 
ル命令の周辺のものなので,識別子 “ —X 
C -” が定義されているときに コンパイル 
されるべき部分を残し,それ以外の余計な 
# i 卜 # endif をエディタなどで削除してコ 
ンパイル すればよいはず だ。 

ただ,この方法も確認したわけではない 
ので,実際に「人間プリプロセッサ」を実 
行しても素直にコンパイルできるとは限ら 
ない。その辺は,自分の責任においてやっ 
てほしい。本音をいえば,私もあの XC で 
デバッグをするなどという精神衛生上よろ 
しくないことはしたくないのだ。 XC をす 
でに持っている読者なら, Oh ! X (1990 年6 



、ノ\一 卜曲線の組み合わせ 


月号)で GCC を手に入れたはずだし,この 
号を買い忘れてしまった人もなんとか GC 
C を手に入れたほうが無難だと思う。 

実行方法 

‘ hash ’ に続いてデータのファイル名を 
打ち込み,リターンキーを押すとレイトレ 
ーシングを開始する。 

hash データのファイル名’ 

もし,完成した画像をセーブしたいなら 
データの ファイル名に続いてセーブすると 
きのファイル名を記述する 0 

hash ‘ データのファイル名’‘ セー 
ブ時のファイル名’ 

セーブは, Human 68 k のべタフオーマ 
ットで行われるので X - BASIC などから簡 
単に読み込める。また, ‘ hash ’ で画面を 
ロードすることも可能である。 

hash frame load 口ードするフ 
ァイル名’ 

写真を見ればわかるとおり,通常の影処 
理を行った場合の影は,非常にシャープな 
エッジを持っていて,影となるところは至 
るところ一定の暗さとなっているのがわか 
るだろう。画面左上に見えている丸い物体 


Id.f = CprmX|litX(L • N) 广、光源 

(|L| = !N|=I) )0 , LIT 

/ 



Cpru 

拡散反射モデル 



鏡面反射モデル 


特集 HASH.X 53 










従来のレイトレ 


は無限遠方にある光源で,この光源による 
薄い影も確認できる。これに対し,半影処 
理を施した画像では,完全に暗い部分(本 
影)とその周りにぼやけた部分(半影)が見 
られる。現実世界の光源は必ず大きさを 
持っており,写真に示すようなシャープな 
影ができることはない。 

今後の発展 

完成画像を見た感想はいかがだっただろ 
うか。扱える曲面が球面のみに限られてい 



HASH ではこうなる 


るとはいえ,こと影に関してはかなり現実 
感のあるものが得られているのではないだ 
ろうか。今後,このプログラムを発展させ 
ようとするとき,まず考えられるのは曲面 
の種類を増やすことだろう。 

レイトレーシングでは2次曲面が扱える 
のが普通だから,半影処理も2次曲面に対 
応させなければならない。しかし,対象が 
2次曲面となると,今回用いた簡単で速い 
アルゴリズムは使えなくなる。それでも, 

2次曲面に対応させたいのなら,あとは分 

散レイトレーシングか円錐レイトレーシン 


グに頼ることになる。 

ほかに,非常に特殊ではあるが,多面体 
( 3角ハ 0 ツチ)に対してレイトレーシングを 
行う アルゴリズム* 9 がある。影処理のとき 
に Z バッファ法などを使って,多面体を構 
成する3角パッチを投影面に投影してやれ 
ば今回のような半影処理を実現できる。レ 
イトレーシングにおいて今回の半影処理を 
発展させるとすればこの方向しかないだろ 

5〇 

多面体であれば Z バッファ法などのほう 
が高速だし, スムースシェーデイン グが使 
えて有利なのだが,多面体のレイトレー シ 
ングというのもなかなか面白そうなテーマ 
なので,そのうち機会があれば挑戦したい 
と思っている。 


*9 興味のある方は文献 7. 4) をどうぞ。 

ぉわりに 

半影処理された画像を見て,我ながら感 
動してしまった。自作の別のレイトレーサ 


一夕の文法 


レイトレーシングのデータの中には,次のものが含まれる。 

I . システム記述項 

s 1 横ピクセル数’ 1 縦ピクセル数’‘ビット数 (4, 8, 16),‘ ディ 
ザリングモード (0 〜4)’ ‘ 左上X座標’ 4 左上 Y 座標, , 右下X座標’ 

4 右下 Y 座標’ ‘最大追跡回数’‘影処理用ラスタのメッシュ’ 
ピクセル数とビット数によって画面モードが決定される。 

最大追跡回数は反射光の追跡を行う最大値を与える。 

メッシュ: mesh は半影処理用ラスタの細かさである。大きな値とす 
ると緻密な半影を生成するが若干計算に時間がかかる。 mesh=l とする 
と通常の影処理を行い, mesh==0 ではまったく影処理を行わないため, 
計算が早く終わる。 

例) s 512512 16 0 0 0 511 511 3 30 
mesh = 30 の半影処理を行いながら. 5 12X512(65536) モードのフルス 
クリーンのレイトレーシングをする。 

2. 視野面記述項 

v ‘視野面の横幅の1/ご • 上方向べクトル’ 1 參照点’‘視点’ 

上方向べクトルは視野面の「上」が存在する方向 • 参照点は視野面の 
中心•視点は「目 j の位置である(図4)。 

3. 環境記述項 

g 4 地面の市松模様の大きさ’*市松模様の属性I’ ‘市松模様の属 
性2’ ‘ 光が半減する距離’‘霞表現 (0 〜1)’ ‘空の色 (r,g,b)’ 

地面の市松模様が要らなければ大きさを0にする。属性は後述め a’ 
項の No. を記す。 

例) g 100. I 2 1000 .0.2 0.4 0.6 1.0 

市松模様の大きさは丨辺100の正方形で,光の強さは距離1000進んだ 
ところで1/2になる。空の色は水色である。 


4 . 属性記述項 

a ‘属性 No. (>=0)’ ‘ 色 0%g, b)’ • 反射率 (0 〜1)’ * ハイライト 
の明るさ(通常:1)’ 4 光沢(〜16〜32〜)’ 


属性 No. は球面や地面の市松模様の属性を決定するのに用いられる No. 
である。 


5. 光源記述項 

I ‘光体の属性(>=0)’ ‘ 中心座標’ 4 半径’ 4 光源光強度’ 

I •一 I’ 1 光源の存在する方向’ 4 見掛けの大きさ(単位:度)’ 

’光源光強度’ 

属性に対して負の数を与えると無限遠方からの平行光線源の定義と見 
なされる。そうでない場合は有限な位置にある球状の光源と見なされ, 
指定された属性を持つ実体が同時じ定義される。 

半径および見掛けの大きさは0であってはならない。 

6. 球面記述項 

P 4 球面の属性’'中心座標’‘半径’ 



54 Oh! X 1991.2. 

















. 000 
• 000 


atr x 

11-41.6168 

12 -68.9430 

13 -79.6845 

14 ->75.0000 

15 -58.8975 

16 -37.1231 

17 -15.7857 


y 

-72.0824 
-119.413 
-138.018 
-129.904 
-102.013 
- 64.2991 
-27.3416 


z 

89.0560 
152.114 
223.987 
290. 000 
338.792 
364.246 
366.220 


r 本 
45.9707 
41.7228 
37.5075 
33.3372 
29.2312 
25.2209 
21.3602 


blu 
. 000 
.170 
.330 
.500 
.670 
.830 
1.00 

blu 
1.00 
.830 
.670 
.500 
. 330 
.170 
. 000 


atr x 

4 83.2336 

5 137.886 

6 159.369 

7 150.000 

8 117.795 

9 74.2462 

10 31.5714 


r * 
17.7471 
50.2430 


blinn 
32 p 
32 p 


red 

1.00 

1.00 

red 
1.00 
.830 
.670 
.500 
• 330 
.170 
.000 


y 

72.0824 

119.413 

138.018 

129.904 

102.013 

64.2991 

27.3416 


z 

89.0560 
152.114 
223.987 
290. 000 
338.792 
364.246 
366.220 


r 本 
45.9707 
41.7228 
37.5075 
33.3372 
29.2312 
25.2209 
21.3602 


red 
. 000 
.170 

• 330 

• 500 

• 670 

• 830 

1.00 


r * 
45.9707 
41.7228 
37.5075 
33.3372 
29.2321 
25.2209 
21.3602 


z r light intensity 木 

0. 1. .60 .60 .60 

3 . 4 . .60 .60 .60 


blu ref high blinn 本 
•200 .35 3 36 

.500 1.0 0 48 


chek at1 at2 half dift amb 

0 . 0 0 0 . 0 . .00 


sky color * 
•40 .20 .30 


本 atr 


x y z 
0. 0. 290. 


r 

60. 


light intensity 
« 50 .50 .50 


============ heart === : 

Heart-shaped 


decoration 


* wid hgt bit dth 
s 512 512 8 4 


xl yl x2 y2 
0 0 511511 


dx dy max mesh 木 
4 6 3 40 


* 画面幅/ 2 上方向 

v 320 001 


參照点 

0 0 200 


視点 * 

860 -80 700 


では,2次曲面や屈折などもサポートして 
いるのだ力 5 ',影がノッペリしているため, 
「ううむ……」と唸ってしまう。おかげで 
分散レイトレーシングをやりたくなった0 
しかし, X 68000 では遅すぎる。ここは我 
慢だ。学校でコプロ付きの P 〇 -98 RA の 
スピードなんぞを見せつけられると,つい 
我が家のプリンタの下に敷いて計算端末に 
したい欲望に駆られてしまう。 X 68000 は, 
このスピードで厳しい生き残り競争を勝ち 
抜いていけるだろうか。 

それはそうと, X 68000 のプログラミン 
グ環境は最高である。グラフィック•スプ 
ライト • PCM ……, X 68000 にはプログラ 
ム欲を駆り立てるテーマが山ほどある。ま 


して, OS -9 がある。今回のプログラムは 
すべて OS -9/ X 68000上の MICROWARE 
- C ( MW - C ) で組んだものだ。 MW - C と 
XC のライブラリの違いのため,これまで 
( hash 以前)のプログラムは移植を渋って 
いたのだが,近頃, GNU-C - FLOAT 3 
+ • コプロボードを手に入れたことから G 
NU - C への移植に踏み切った。 

1年半前,私が Oh ! FM ではなく, Oh ! 
X を 買うようになっていちばん寂しかった 
のは, OS -9 の記事がほとんどなかったこ 
とだった。いまでは OS -9 は開発の環境な 
のだと割り切っているので,もう「寂しい」 
とは思わなくなった。私にとっては,裏で 
レイトレーシングを しながら表では エディ 

U スト 


夕でデバッグができる環境 ( OS -9) はとて 
も心地好いのだ。 

参考文献 

1) 小林一也,「レイトレーシングを用いた球面 
の3次元グラフイックス」,ソフトバンク, Oh ! F 
M 1984年5,6月号 

2) 丹明彦, 「 Z バッファアルゴリズム」,ソフト 

バンク, Oh ! X , 1989年7, 8月号 

3) デビッド. F . ロジャース, 「実践コンピュータ 
グラフィックス基礎手続きと応用」,監修:山口 
富士夫,訳:セイコー電子工業[株]電子機器事業 
部,日刊工業新聞社 

4) 高桑昌男 , 「CG レイトレ 物語」,アスキー出 
版局 

5) 中前栄八郎,「ここまできたリァリズムー四 
半世紀の進展一」,図形処理情報センター , PIX 
EL , 1989年2月号 


8 0 5 0 5 17 
6 3 4 0 7 3 5 
X1480928 
6 9 6 0 8 17 

18 9 5 8 7 5 
4 6 7 7 5 3 1 

I I - I 

r 

t 

a 8901234 
112 2 2 2 2 


ppppppp 


-22222c 


h 

g 0 0 0 0 0 0 
.13333333 
h 

f 1111111 
0 0 0 0 0 0 0 
r. 


n 0000000 
r 0370370 
g *865310 


u 0000000 
X0000000 

.D CS 


n 0 0 0 0 0 
r 0 0 0 0 0 

g ttv 0 0 


ppppppp 
n 
n 

.12222222 

13333333 

b 

h 

s 0000000 

•13333333 

h 

f 1111111 
B 0 0 0 0 0 0 

r. 


n 0000000 
r 0730730 
2 0 13 5 6 8 • 


0 4 7 0 2 6 0 
z 6180942 
5 19 0 7 2 2 

0 . 

• 2 3 0 8 4 6 
9 5 2 9 3 6 6 
y 8122333 

cs 


0 0 
5 5 
y 3 

X 0 0 
0 0 


r 

t 

a 2 3 


h 

20 0 
•13 3 
h 

f 11 
6 0 0 
r • t 


n 0 0 
r 0 0 
g • • 


u 0 0 
10 0 
b 參 . 


all 023 
p 二 N 


04567890 01234567 08901234 
N 1 N1111111 Nil 22222 


112 2 2 < 

本 aa 本 aaaaaaa 本 aaaaaaa 本 aaaaaaae 


d 0000000 
60000000 
r 0000000 


p p p p p p p 


.12222222 

13333333 

b 


0 CS ¢3 

.13333333 

h 

f 1111111 
ecs ¢9 
r. 



n 0 0 

r 0 0 
g • 5 


d 0 0 
6 0 0 
r • 5 


No? 


* a a 


123456789012345678901234567890123456789012345678901234 

111111111122222222223333333333444444444455555 


特集 HASH.X 55 












製品試用レポート 

Fine Scan 


lakahashi Tetsushi 


高橋哲史 


HAL 研究所 drFine Scanne 「- X 68」 はモノクロ256階調の 
取り込みが可能なユーザー待望の八ンデイスキヤナです。添付 
ソフトも強力でグラ$7イツク作成のおともに最高と高橋君も絶 
賛。さっそく使用感をレボートしてもらいましよう。 


こんにちは。お絵描き専門スタッフの高 
橋くんです(笑)。さてさて,今日は全国 
1千万人(当社推定?)の CG 描きの皆さん 
に朗報です。そう, CG の下絵を用意してス 
キャナで取り込んでは,うまくいかず,何 
度もコピー機とスキャナの間を往復したあ 
げく 「だあ 一っ もうやってらんね 一っ!」 
(CG 描きなら誰でも一度は経験があると 
思う…… ) となってしまったあなた! 
HAL 研究所から出たんですよ,賢いスキャ 
ナが!これで,いままでの取り込み調整 
の負担がかなり軽減されることと思います。 
とにか〈賢く,使って嬉し〈なってしまう 
私なのでした(ほくほく)。ああ,こんなに 
可愛いやつなのに,この原稿書き終わった 
らまた編集部に返さなくてはならないなん 
て。うう,なんて非情な世の中なの(編注: 
当たり前です。欲しかったら自分で買いな 
さい。それが人生です)。 

製親要 

さて,このフアインスキャナがいままで 
のハンディスキャナとどこがどう違う(賢 
い)かといいますと,なんといっても「グ 
レイスケール256階調取り込みを実現して 
いる」という点なのです。これにより元絵 
のペンの強弱(いわゆる「入り」と「抜き」) 
までがきっちりとディスプレイ上で再現し 


てくれます。はっきりいってこれは感動も 
のです。いままでのハンデイスキヤナでは 
白と黒2階調のみの取り込みでしたので,線 
がプチプチと切れてしまい,そのイ1多整にた 
いへん 時間を要してしまいましたものね 
(元絵を描いている時間より修整してる時 
間のほうが長かったりして)。 

それと専用の画像加エツール 「Image 
Photo 68」で取り込んだ絵をデイスプレイ 
上でリアルタイムにいじれますし,まさに 
いたれりつくせりといった感じがあります。 
いままでのスキヤナではせいぜい BASIC 
の取り込みプログラムがサンプルで ついて 
くる程度でしたからこれはもう天と地ほど 
の差です。 

さて使い心地は? 

読み取り幅や転送速度などの詳しいスぺ 
ックは1月号の広告を見れば載っています 
ので,ここでは付属ソフトである 「Image 
Photo 68」を詳しく見ていきたいと思いま 
す。このソフトでは明るさやコントラスト 
などの細かい調節がマウスひとつで簡単に 
行えるようになっています(もちろんキー 
ボードからの操作も可能)。また複写や回転 
などの簡易グラフイック ツールと しての機 
能も兼ね備えているのでかなり重宝するこ 
とでしょう。 

さて 具体的に取り込みはどう 
行うのでしようか?このソフ 
卜は「1024 X 1024」の取り込み 
画面を持ち,その中から範囲を 
指定してそこに画像を取り込む 
ようになっています(もちろん 
最大取り込み面積は 「1024 X 
1024」です!)。あ,いい忘れて 
いましたが画面モード設定によ 
り768/512ドットの両モードに 
対応しています。そして取り込 
みには「範囲内取り込み,自由 
長取り込み」の2種類があり,範 
囲内取り込みには, 


256 X 256 512 X 512 
768 X 512 640 X 400 
512 X 480 全領域 (1024 X 1024) 

での指定が 1024 X 1024 の画面の任意の点か 
ら行えるようになっています(便利ですね一)。 
これにより複数の絵を同時に取り込み,画 
面上で編集することが可能になっています。 
また自由長取り込みは画面モードに関わら 
ず 1024 X 1024 の取り込みを行います。 

特筆すべきは取り込みの速度で,本当に 
「スルスルー」 と画面が滑るように流れ, 
あっという間に取り込みが完了します(あ 
まり調子にのって速く転がしすぎると下絵 
を読み飛ばしてしまうのでご注意を)。これ 
なら元絵の位置がずれていたといっても, 
取り込み直しが苦になりませんね。う〜ん, 
専用ボード付きで本当によかった。 

さて,取り込んだ絵はその場ですぐに加 
エができます。コントラスト調整や2値化な 
ど,さまざまな機能がありますが,とりあ 
えず順番に見ていくことにしましよう。 

まずはメニューバー3番目の「調節」で 
す。ここではコントラスト,明るさの調節 
ができます力 5 ',なんといっても重宝するの 
は y 補正です。これは出力先のデバイス(プ 
リンタやディスプレイですね)に合わせて 
輝度を自動調節してくれるという非常に便 
利な機能なのです。プリンタもドットイン 
パクト,熱転写,レーザーと多種多様に対 
応しており思わず感心してしまいました。 
ちなみにデフオルトは 「 HALFAX 」 になっ 
ていました(笑)。 

そしてさらに強力なのが「ユーザー曲線 
による: Hi 正」です0マウスでちよいちょい 
とユーザー曲線をいじるだけで画面の色合 
いが瞬時に変わっていくのは実に爽快です 
(768 モードでは「設定」をクリックしない 
と変化しないんですけどね)。これは次の2 
値化の細かい調整に威力を発揮します 。 CG 
描きには非常にありがたい機能なのです 
(こだわりで自分の求める線が得られるの 
が良!)。 

そしていよいよ肝心要の2値化です。2値 



56 Oh! X 1991.2. 













化は文字どおり表示されているグラフイッ 
クを白と黒の2色だけに置き換えてい〈作 
業なのです。 「 Image - Photo -68」 ではこの 
2値化にかなり力を入れており単純2値化を 
始め誤差拡散,ベイヤーなどさまざまな手 
法が用意されているので,取り込んだ画像 
にあった2値化を施すことができます(ちな 
みに自分で作成したデイザパターンも使え 
ます)。でも僕が主に使うのは単純2値化だ 
けなんですけどね。いわゆるアニメ調の CG 
ばっかり描いているもので。しかし写真な 
どの取り込みにも威力を発揮するので, 
DTP (デスクトツプパブリツシング)に 
も非常に重宝するのではないでしょうか 
(もちろんソフトがあればの話ですが……〇 
X 68000 の DTP 環境はとても不幸だと思う 
私)。 

また 1024 X 1024 の任意の範囲を倍率を変 
えて2値化を施すことができるので,たとえ 
ば1024 X 1024全域に取り込んだ絵を512 X 
512に収まるようにすることもできるので 
す(縮小率50%)〇ただ 512 X 512 だとデイス 
プレイ上でのドットの縦横比が1:1ではな 
いので,1024 X 1024の絵を正直に縮小率 
50%で持ってくるとやや潰れた絵になって 
しまいますので注意したいところです(お 
勧め倍率は横50%縦37%といったところで 
しょうか?)。まあ,この辺は画面表示でリ 
アルタイムに2値化を施した画像を確認で 
きるのであまり心酉己しなくても大丈夫でし 
ょラ〇 

さて2値化した画像を保存します。2値化 
された画像に限らず 「Image Photo 68」は 
多彩な画像フォーマットをサボートしてい 
ます。驚くことに市販ツールとして初めて 
PIC 形式のファイルをサボートしています 
(おお!)。ただ私が使ったものはサンプル 
版のせいかまだ PIC の P の字も見えません 
でしたが……(しかし広告には明記してあ 
るので製品版にはきっと入っているでしょ 
う)。やはり,いまとなっては PIC が X 68000 
の画像フォーマットの標準!:なった感があ 
る昨今,ほかのツールの皆さんにも見習っ 
てほしいものです。 

あと,ちょっと難をいいますと,デイス 
クへの書き込み&読み込みが少々遅いです。 
GL 3 など平気で1分以上かかったりします。 
ほかがいいだけに,ついついいってしまう 

私です。 

さて,そのほかの点はきちんとツボを押 
さえて作られており,プリンタにも幅広く 
対応していますし,設定すればなんとビデ 
オスキャナも使えます0少々残念な点とし 
ては 512 X 512 モード多値のフアイル書き込 


みでは画面で見たどおり少し縦に潰れたま 
ま SAVE してしまいます。 512 X 512 が一番 
よく使うモードでありますし,この辺はも 
う少し頑張ってほしかったのですが……。 

それと,基本的にマルチウィンドウなの 
ですがそれぞれのウインドウの位置が固定 
されているのでやや不自由さを感じます。 
特に ユーザー 曲線の定義な ど は実際に表示 
されている絵を見ながら行いたい作業です 
ので,設定中でもウインドウや スクロール 
バーが動くようにしてもらいたかったもの 
です。しかし, Z’sSTAFF PRO -68 K やマジ 
ックパレット などのグラ フィックツールの 
スキャナウインドウよりはずっとかゆいと 
ころに手が届く出来になってるのが嬉しい 
ところで'す。 

これは使える 

ハンデイスキャナというと,これまでは 
結構ちゃちな物というイメージがあったの 
ですが,このファインスキャナは見事にそ 
のイメージを払拭するだけの性能を持って 
います〇1月号付録ディスタのカット取り込 
みのときに初めて触ったあの感動はちょっ 
図1ペン画の取り込み例(単純2値化) 


と言葉にしがたいものがあります。とにか 
く取り込み画像が綺麗なのです。もちろん, 
CZ -8 NS 1 などの机置き型スキャナ(そん 
な名称あったっけ!?)に比べると「カラー 
取り込みができない」「あまり大きなサイズ 
の絵は読み込めない」などの点があること 
はあります力 5 ',カラー取り込みなどを使う 
人などは滅多にいないし(レイトレのマッ 
ビング データを 作るくらい ?) ,ハンディタ 
イプのメリットである小回りのよさがそれ 
を補って余りあると私は思うのです。それ 
になんといっても39,800円という価格設定 
が魅力的です。高速取り込みのための専用 
ボード,賢い付属ソフトつきでこの値段は 
絶対安い! 

ということでこのファインスキャナはお 
勧めですので全国2千万人の(おい増えてな 
いか? ) CG 職人の皆様のお手元にぜひこの 
1台を(なんか通信販売の宣伝みたいにな 
ってしまいましたね)。このスキャナの登場 
により良質の CG が限りなく増えることを 
願う私でした。 

Fine Scanner - X 68 HGS -68 39,800円 
(専用ボード,ソフト付き) 

HAL 研究所003 (3252)5561 




特集 Fine Scanner -68 X 57 














シミ!レージョンプログラミング入門 

シ SuP ■ジョン I 妹来をひらく 


Kamon Masato 


華門真人 


今回は「連続変化型シミュレーションに挑戦 J ということで, 
電熱式温水器の制御を取り上げてみました。と,本題のほうは 
そういう内容なのですが,前半部分はシミュレーション関係の 
害箱の紹介となっていますので,興味のある方はどうぞ。 


正確にいえば,ではある力 ? ,’90年代と 
いうのは1991年から始まる10年間のことで 
ある。つまり,ようやく名実ともに’90年 
代を迎えたということになる。 

ここ数年で世界は大きな変化を遂げた。 
統ードイツが誕生し,アメリカカ ? ソ連に最 
恵国待遇を与えるようになるなんて,少し 
前まではまさしく夢のような話だった。 

21世紀まであと10年間。夢の世紀だった 
21世紀も近い将来には現実となる。もっと 
も,未来は必ずしも明るいわけではないこ 
とも確かだ。 

最近の世界平和の潮流はひとりの地球人 
として非常に喜ばしく思っている。しかし, 
またいつ第2のサダム•フセインが現れな 
いとも限らないのだ。 

問題はそれだけじゃあない。人口爆発, 
そしていまや世界共通の問題である環境破 
壊。「夢」の21世紀までの最後の10年間で 
ある’90年代。いま,僕たちはこれからに 
ついて真剣に考えなければならないときに 
さしかかったのではないだろうか。 

/ Ski / 


今回は妙に真面目な話でスタートした0 
とはいっても別に社会問題入門に衣替えし 
てしまったわけじゃあない。安心してほし 

い0 

問題は雪不足にあるのだ。皆さんご存じ 
のとおり“今年も”雪不足のようだ。これ 
で4年連続ということになる。おまけに昨 
年は記録的に暖かい1年だった。 

これは異常なのではないだろう力、。もっ 
とも最近はあまりにも異常ずくめで,何が 
正常で何が異常なのかが判然としないよう 
な気もするけれどね。 

とにかく最近は異常が多すぎる。ここま 
でくると僕みたいな小市民でも地球の将来 
が心配になってしまう。その思いが冒頭の 
—節を書かせた,というわけなのだ。 

もっとも,これは異常ではないという話 


もある。なんでもこれは地球のサイクルの 
一環なんだそうな。 

とはいえ,いままで人間が環境に気をつ 
かわなさすぎた,というのも事実だと思う。 
これからは「地球にやさしい」生活をしよ 
うと決意をする筆者であった。 

まあこんな決意をさせてしまうほど,雪 
不足というのはスキーヤーにとっては深刻 
な問題なのである。とくに僕のようにチー 
ムに所属して滑りまくっているスキーマニ 
アには。 

そんなフラストレーションを解消すべく, 
ここで1冊の本を紹介しよう。清水史郎氏 
による r スキーの 科学』 という本である。 
名は体を表すとの言葉どおり,これはスキ 
一に関する本だ。それ以上でも,それ以下 
でもない。 

もっともここで紹介するのだから,スキ 
一だけ,というわけでもない。まあ,あま 
りじらしてもしようがないから,そろそろ 
秘密を明かすことにしよう。 

この本はシミュレーションを用いること 
によってスキーを科学してしまおうという 
なかなか ュニークな 発想のもとに書かれて 
いる。 

ここで シミュレーションと 聞いて,何を 
想像されただろうか。正解はなんと ロボッ 
卜なのである 0 ロボットとシミュレーショ 
ン,いったいどんな関係があるのだろう, 

と思われるかもしれない。確かにいきなり 
ロボットによるシミュレーションと聞いて 
もピン!:こないだろう。 

それでは順序立てて説明してみよう。シ 
ミュレーションというのは何通りもの方法 
があるというのは第1回でもお話ししたと 
思う。前々回,そして前回ではその何種類 
もあるシミュレーションの中から,コンビ 
ュータ上でシミュレーションを実現するた 
めに「数学的モデル(数値モデル)」を見 
てきた。 

すなわち,現実を数値に置き換えること 
によってシミュレートする方法を考えてき 


た0ところがひと口にシミュレーションと 
いってももうひとつ大きな流れがある。 

記憶力のいい方は覚えていらっしゃるか 
もしれない。「物理的モデル」というのが 
その名前だ。 

「物理」と聞くだけでおそれおののいて 
しまう文科系の方(もっともそれなら数学 
もダメか),心配することはありません。 
ここでいう物理とは「実在のもの」という 
ぐらいの意味なのだから。 

つまり,現実を数値に置き換えるのが数 
学的モデルだとすれば,現実を実在のなに 
かに置き換えてシミュレーションを行うの 
が物理的モデルというわけ。 

そろそろわかってきたかな。そう,この 
本では現実のスキーをロボットでシミュレ 
一卜しているのだ。と聞くといかにもすご 
そうなロボットを思い浮かべてしまいそう 
だが,さにあらず。 

本を開けてびっくり,おそれおおくも人 
間様をシミュレートするのは身長 30 cm の小 
さなロボット君なのだ。なんでそんな小さ 
なロボットでスキーヤーを真似できるんだ 
ろう,そう思いませんか。 

ゲレンデでエキスパートの華麗な滑りを 
見て感動する。スキーヤーなら誰でもが経 
験することである。ああ,いつかは自分も 
ああなりたい。ボーゲンでこけてばっかり 
いる現実を忘れ,しばしエキスパートにな 
った自分の滑りを思い描く。 

まあ,想像するのは自由ですから。ちな 
みに,こうしてエキスパートを夢見た人は 
いつしか3タイプに別れていく。ひとつは 
夢を追いつづける体育会系タイプ,もうひ 
とつはいつしか上達をあきらめる極楽スキ 
ーヤータイプ,そして最後が才能がないの 
かいつまでたってもこけつづける「ゲレン 
デ障害物 j タイプである。 

話がそれたが,上級者の滑りを見て いる 
と, 体が実に フレキシブルに 動いて いるの 
がわかる。雪面を捉えつづける足,ビクと 
もしない上半身,そして華麗にストックを 


58 Oh!X 1991.2. 










突〈腕,さらに顔はしっかりと前方を見据 
えている。 

よりによって,そんないかにも複雑そう 
なものをたかだか身長 30 cm のロボットでシ 
ミュレートしようというのだ。嘘だろう, 
僕だって最初はそう思った。 

だが,そのロボットはボーゲン(いちば 
ん基礎的な滑り方)から始まって,パラレ 
ル(初心者の憧れの的,これをマスターし 
ていれば一人前だ),さらにはウェーデル 
ン(全スキーヤーの目標,これであなたも 
エキスパート!)までちゃんとこなしてし 
まうのだ。まさし〈すごいとしかいいよう 
がない。 

しかし,これにはちゃんと秘密がある。 
秘密といっても,もちろんズルをしてるわ 
けじやない。そこにはすべてのシミュレー 
シヨンに共通の,成功の秘訣とでもいうべ 
きものがあるのだ。 


Secret 


さて,その秘訣とはいったいなんなのだ 
ろう。それはひと言でいえば「物事をでき 
るだけ簡単に捉えること」ということにな 
る。 

これはちょっと変に聞こえるかもしれな 
い0現実をうまくシミュレートするのに, 
できるだけ簡単にしろだって,というふう 
に。 

普通に考えてみれば,現実をうまくシミ 
ュレートするにはできるだけ細かく現実を 
模倣するほうがいいように思える。確かに 


の本質は股関節にあるのだ。それは股関節 
「だけ」をシミュレートしたロボットが立 
派にウェーデルンをこなして証明してくれ 
る。 

この本はほかにもコンピュータによるス 
キーのシミュレーションにも少し触れてい 
るし,スキー好きの人ならば読んで損はな 
いと思う。 

しかし,この本をここでわざわざ取り上 
げたのは,ゃはり物事の本質を捉えるとい 
うシミュレーションの得意技が見事なまで 
に証明されているからにほかならない。 

ここでお得意の一般化をしてみようか。 
どうもシミュレーションなどというと,と 
にか〈現実をどこまで細かく真似するか, 
ということに気をとられてしまいがちだ。 

でも,リアルであることがすべてではな 
いのだ,と思う。たとえば,ゲームでジャ 
ンボジェットのフライトシミュレータを作 
ったとする0いくらリアルとはいってもあ 
の何百侗もあるスイッチをいじらなきゃな 
らないとすると,プレイする前から興醒め 
だよね。必要なのは肝心の飛ばす部分なの 
だ。 

要は,シミュレーションもバランスなの 
だと思う。だいたし、の傾向を知りたいので 
あれば,必ずしもリアルにこだわる必要は 
ないのだ。前回,取り上げた料金所モデル 
はリアルとはとてもいいがたい。 

それでも傾向はつかめるし,どう改善す 
ればいいのかだって知ることができる。ス 
キーロボットだってそうだ。とても人間と 
は似ても似つかないけれど,本質は捉えて 


これにも一理はある。 

しかし,物事を簡単に捉えることによっ 
て初めて見えてくるものも,存在する。 

初心者が上級者の滑りを見ると,その全 
身のすばらしい動きを見て,いったいどこ 
を真似すればいいのかわからなくなってし 
まう。全身に気をとられるあまり,本質, 
うまく滑るための本質,を捉えることがで 
きなくなってしまうのだ。 

ところが,そのうまく滑るための本質 
「だけ」を真似したロボットだったらどう 
だろう。これなら本質を見極めることがで 
きそうだ。 

なにも複雑であることがいい,とは限ら 
ないのだ。単純であることの良さというも 
のだってある。なによりも単純なモデルで 
あれば,理解することも,そしてモデルを 
シミュレートすることも容易なのだから 0 

さて,そのロボットに教えを乞えば,ス 
キーというのは結局股関節の動かし方いか 
んなのだ,ということになる。つまり滑り 


いる。 

よく,シミュレーションをしようとして 
いるのに,あまりにも現実に近づけること 
にこだわりすぎて肝心のシミュレーション 
を実現できないでいる人がいる。そんなに 
リアルにこだわることはないんじやないの 
かな,と思うのだ。 

逆に,必要であればあくまで現実にこだ 
わることも重要だと思う。必要ならば,だ。 
たとえば,同じフライトシミュレータでも 
パイロットの練習用に使うのであれば,や 
っぱりできるかぎりリアルじやなきや困る 
(あれ,練習と違うなあ,とかいわれて墜 
落された日には大変な騒ぎだ)。 


Driving 


ついでだからも,1冊,別の本にも触れ 
ておこう0舘内端氏の『クルマの速さが 
見えてきた』という本である。こういう題 
名だと,おおドラテク(ドライビングテク 


ニック)の本か,と思ってしまう。 

よくあるよね,「無敵のドリフトテクニ 
ック」とか,「4 WD 乗りこなしマニュア 
ル」とか(かくいう僕もこの類の本を何冊 
か持っている)。 

しかし,この本はひと味違う0クルマの 
走りを科学的に分析し,分析を通じていか 
に速く走るかを考えているのだ。ご存じの 
ように,クルマだって数式で表すことがで 
きる。いちばん簡単なのが,例の, 

F = ma 

という公式。力は質量に加速度を掛けたも 
のに等しいという,中学で習うアレだ0 
この公式からも,同じ力ならば質量が小 
さいほうが加速度が大きくなる,というこ 
とがわかる。言い換えれば,同じエンジン 
ならば車重を蛏くしたほうが速くなるとい 
うことだ。 

もっとも,この公式は簡単なほうだ。実 
際のクルマはもっと複雑なバランスの上で 
成り立っている。とはいえ,すべてを真似 
しなくても本質さえ見極めればクルマをう 
まくシミュレートしてやることができる 
(先ほども述べたように,重要なのは本質 
なのだから)。 

実際,この本ではコンピュータシミュレ 
ーションに よって, クルマの 「速さ」 とい 
うものを解析している。コンピュータシミ 
ュレーションによる 0-400 m 加速(静止状 
態から 400 m 走るのにどれだけの時間がか 
かるのかを競う)や,サーキットでのラッ 
ブタイムシミュレーションなど,なかなか 
ワクワクするようなことをやっている。 

ただ残念なことに,シミュレーションの 
詳しい方法などまでは書かれていない。一 
般向けの本だし,スペースの制限もあるだ 
ろうから,無理もないとは思うのだが。 

しかし,そのシミュレーションの結果だ 
けでも十分に興味深いものがある。いまあ 
るクルマをチューンアップさせる方法とし 
て, 

1) 軽量化 

2) パワーアップ 

3) タイヤのグリップを上げる 

の3つの方法がある!:する。これらのうち, 
どれかひとつによってチューンアップされ 
たクルマでサーキットを走るとすると,ど 
のチューンアップがいちばん効果を発揮す 
るのだろうか。 

多くの人が 2) のパワーアップと答える 
だろう。普通そう思うよね。ところがシミ 
ュレーションの結果は,驚くなかれ, 3) 
なのである。 

細かいことは実際に読んでもらうとして, 


シミユレーシヨンプログラミング入門 59 






このシミュレーシヨンを裏づけるひとつの 
事実を述べておこう。 

2年前に F 1 (フォーミュラワン)で夕 
ーボ エンジンが 禁止されたことを覚えてい 
らっしゃるだろうか。あの禁止によって, 
F 1 のエンジンの 出力は 1000馬 カオーバー 
からせいぜい 700 馬力ぐらいへと大幅にダ 
ウンしてしまった。 

ところが,ところがである。 エンジンの 
出力が大幅に落ちたにもかかわらず,サー 
キットでのラップタイムはどんどん更新さ 
れつづけているのだ。 

なぜか。これはタイヤの性能によるとこ 
ろが大きい,といわれている。つまり,以 
前はタイヤがプアなので1000馬力のうちか 
なりのパワーが無駄になっていたのに対し, 
いまはタイヤが 700 馬力のすべてを発揮で 
きるようになった,ということらしい。 

もちろん,空力の向上とか,シャーシの 
進化,ドライバーの腕なんかも関係あるの 
だけれど。 


Continuous 


だいぶ前置きが長くなってしまった(そ 
れともいままでが本題だったのかも)。今 
回は連続変化型のシミュレーションに挑戦 
してみようと思う。 

なぜか。早い話が先のサーキットシミュ 
レーションに刺激されたのだ。サーキット 
シミュレーションをするとなると当然,時 
間を中心にシミュレートする必要がある0 
すなわち,連続変化型シミュレーションと 
いうことになる。 

第1回をお読みになった人はご存じだろ 
うが,実は僕には連続型シミュレーション 
を断念したという忌まわしい過去がある。 
にもかかわらず,またトライしようという 
のである。 



それだけ サーキツトシミュレーシ ョンに 
惹かれたってこと。それに,いやしくもコ 
ンピュータシミュレーションを語るのであ 
れば,やはり連続型は欠かせないという事 
情もある。 

考えてみれば,最初にシミュレーション 
をしようとすれば,まずたいていは連続型 
になるのではないだろう力、。現実の世界で 
は(当然)時間は連続なもの,その現実を 
シミュレートしようとすれば十中八九は連 
続型で考えはじめることになると思う。 

なかには連続型に早々と見切りをつけて, 
離散型に活路を見いだす僕のような人間も 
いるだろう。しかし,普通の人間の感覚と 
してはやはり連続型のほうがなじみやすい 
だろう。 

やはり連続型は避けては通れないようで 
ある。もっとも,なじみやすいが難しいと 
いうのも事実。だからいきなりサーキット 
シミュレーション というわけには いかない 
だろう(ガタツ,期待させてゴメン)。こ 
こでは比較的簡単なモデルで,連続型 シミ 
ュ レーシヨンの 「 HOWTOj を見ていく 
ことにしよう。 


Heater 


モデルとして何を取り上げるか。それが 
まず大きな問題となる。やはり身近で感覚 
的に理解しやすいものがいい。 

というわけで,ここでは, 

「電熱式温水器」 

なるものについて考えてみよう。え,電熱 
式温水器ってなんだ,って。まあ,早い話 
がシャワーのこと。電気を使って水を温め 
るシャワーだと思ってくれればいい。図1 
のようなものだ。 

普通僕たちがシャワーを使うとき,どう 
やって温度調節をしているのだろうか。バ 


ルブを開け閉めしてだって。それは当たり 
前。ここでいいたいのはどのような考え方 
をして温度調節をしているか,ということ 
だ。熱すぎたらバルブを閉めて,ぬるかっ 
たらバルブを開く。おおかたはそれぐらい 
しか考えていないだろう。僕だってそうだ。 
しかし,半無意識のうちに,僕たちはかなり 
高度な制御を加えているのだ。 

シミュレーションを 通してそれらを明ら 
かにしていこうと思う。 

本氺 * 

離散型でも連続型でも同じことだけれど 
も,シミュレーションを実現するためには 
まず対象となるものの特徴を捉えてモデル 
を作り上げなければならない。 

今回の対象である温水器について考えて 
みると,人間が操作する場合は図1のよう 
になるが,人間の代わりにコンピュータが 
制御するようになると図2のようになる。 
このコンピュータによって制御されたシス 
テムをシミュレートすることにしよう。つ 
まり,図2がシミュレーションモデルにな 
るわけた、 

図2のモデルは大きく 2つの要素に分け 
て考えることができる。制御しているほう 
とされているほうだ。ここではまず制御さ 
れているほう(制御対象)について考え, 
次に制御について考えるということにしよ 

5〇 

それではまず,制御対象について順を追 
って考えてみよう。入力に一定の水温の水 
が流れ込んでくる。この水がヒーターのところ 
まで流れて込んできて,ヒーターによって 
温められる。そして,その温められた温水 
がパイプを通って出力に出てくるというわ 
けだ。 

というと簡単だが,そうひと筋縄にはい 
かない。まず第一に,ヒーターで加熱され 
てもすぐに温水にはなってくれない,とい 


図1温水器モデル 


図2コンピュータ制御 



60 Oh ! X 1991.2. 





























う問題がある。やかんでお湯を沸かすのと 
同じように,水というのは徐々に温まって 
いくものなのだから。 

専門用語でいうと,これは「1次遅れ」 
というものである。ま,口で言うより目で 
見たほうがわかりやすいだろう。リスト1 
を入力してほしい。今回のプログラムは X 
1用のみである。もちろん, X - BASIC に 
も来月対応する予定だ。やはり恵まれない 
環境にあるものを優先すべきでしょう 。X 
68000 ユーザーの方, ご了承を。 

実行するとまずパラメータの入力画面に 
なるはずである。ならなかったらそれは入 
カミスです,はい。パラメータの意味はあ 
とで説明するとして,1<^,1^,1<:〇1を0に, 
そして Kc を60に設定してほしい。そして, 
実行。画面に出たものが1次遅れというも 
のである。 

画面は何を意味しているのだろうか。つ 
まりこういうことである。いま,水温が20 
° C で,目標値は 80° C , その差は 60° C だ。そ 
こでその 60° C の差を埋められるだけの力で 
ヒーターを加熱するのだが,相手は水だ。 
そうそう簡単には温まってくれない。画面 
のように,徐々に温まって,目標値 80° C に 
近づいていくのだ。 

プログラムを入力しなくてもわかるよう 
にちゃんと図を用意した。図3を見ていた 
だければ理解してもらえると思う。どの図 
でもそうだけれど,わかりやすくするため 
に多少のデフォルメがある。一応それを頭 
に 入れて おいて ほしい。 

さて問題はこの1次遅れだけではない。 
ムダ時間というものもある。これはどうい 
うものなのだろうか。とりあえず,ヒータ 
一で水が温められ,温水ができたとする。 

図31次遅れ系 



図4ムダ時間系 



しかし,その温水もすぐには出力には出て 
こない。 

なぜなら,ヒーターの出口から出力にた 
どりつくために一定の時間が必要になるか 
らである。この一定の時間がムダ時間とい 
われるものである。 

これも実際に目で見ていただこう。先ほ 
どプログラムを実行した結果をもう一度見 
てほしい。パラメータは1次遅れのときと 
同じ。出力が温まりはじめるまでに,少し 
タイムラグがあることがわかるだろう。こ 
れがムダ時間という代物だ。図4を見ても 
わかるだろう。 

1次遅れとムダ時間,これでとりあえず 
制御対象の特徴はつかめたことになるわけ 
だ0 


wisdom 


それでは次は,肝心の制御について考え 
てみることにしよう。 

いちばん簡単なのは先ほどやったように, 
目的の温度に上げられるだけの一定の力を 
ヒーターに加えつづけてやることだ。もっ 
とも,これでは1次遅れとムダ時間によっ 
て,図5のように目的温度に達するために 
随分時間がかかってしまう。 

温かいお湯が出て〈る前に,風邪でもひ 
きかねない(とはいえ, 80 °C のシャワーを 
浴びる馬鹿もいないか)。 

そこで「賢い」制御が必要になるわけだ。 
もっとも,僕たちはその制御を無意識のう 
ちにこなしているのだからたいしたものだ。 
ここで制御を分析するためには,その無意 
識にやっていることを明らかにしなければ 
ならない。 

まず第一に思いつくのは,「現在の値と 
目標値との差(偏差)に応じてバルブを調 
節する」というものだ。すなわち,目標値 
との差が大きければバルブを開き(大パワ 
一で加熱する),差が小さければバルブを 
閉じる(あまり加熱しない)というものだ。 
さらに現在値が目標値を上回ってしまった 
場合(偏差が負になった場合)には,それ 


に応じて冷やすということになる(おいお 
い,ヒーターでどうやって冷やすんだ! 

まあここらへんはモデルということで笑っ 
て許してほしい)。 

これがいわゆる「比例制御」というもの 
だ。これは理解しやすいだろう。差に応じ 
てコントロール する。当然のなりゆきだ。 
ところがこの制御には大きな落とし穴が存 
在する。 

お気づきだろう力、,この制御では,目標 
値との差(偏差)がなくなるとまったくカロ 
熱しなくなってしまう。すなわち,せっか 
く目標値に達したものが,また温度が落ち 
てきてしまうのだ(どんどん水が流れ込ん 
でいるのに加熱しなくなれば,当然,また 
水温は落ちて〈る)。 

その結果,決して目標値で安定すること 
はなくなる。それどころか,目標値より低 
いどこかに安定してしまうのである。つけ 
加えれば,このときの目標値と安定値の差 
が永久偏差と呼ばれるものである。 

さっそくシミュレーションを見ていただ 
こ•う。今度はパラメータを Kp = 45 ,Ki = 
0, Kd = 0 , Kc = 0とセットしてほしい。 
いったん目標値に達した水温がまた落ちて 
きてしまうのがおわかりいただけるだろう 
(図6)〇 

比例制御ではなにも制御しないのに比べ 
て早く温度が立ち上がるが,永久偏差が生 
じ,目標値には安定しない。それではどう 
するか。ここで第2の制御を導入しよう。 
すなわち,「偏差に応じた速度でバルブを 
調節する」制御である。 

比例制御との違いがわかるだろう力 1 ,上匕 
例制御は偏差に応じた量でだったのが,こ 
の制御では偏差に応じた速度に変わってい 
るのだ。 

具体的にいえば,偏差が大きければ急い 
でバルブを開ける力す,偏差が小さければ, 
ゆっくりと落ちついてバルブを開けるとい 
うことになる。 

このような制御を「積分制御」と呼ぶ。 
なぜ積分なのかはいずれわかるからいいと 
して,この制御の成果を見てみよう。今度 


図5制御なし 



目棵値 


初期値 


図6 P 制御 



目標値 


初期値 


シミュレーシヨンプログラミング入門 6 i 




















はパラメータを Kp = 45, Ki =5, Kd = 
0, Kc = 0 としてほしい(図 7)。 

ちゃんと目標値に安定しているのがわか 
るだろう。これでようやくまともな制御が 
できるようになったわけだ。 

ところが,実はもうひとつ制御方式があ 
る。積分とくれば当然「微分制御」があっ 
てもいいだろう。この制御は「偏差の変化 
速度に応じてバルブを開け閉めする制御」 
ということになる。 

具体的にいうと,現在はまだ目標値より 
高くても,傾向として水温が下がりつつあ 
るときには,将来下がりすぎることを予想 
して,バルブを調節するような制御という 
ことになる。 

これは将来を予想しながらの制御だから, 
より高度な制御といえる。この制御がなく 
ても,比例制御と積分制御だけで,目標値 
に達することはできる。しかし,この制御 
も併用すれば,それだけ安定した制御が可 
能になるといえる。その申:果を図8に示し 
ておこう。 

こうやって3つの制御を見てきたわけだ 
が, 

比例 ( Proportion ) 

積分 (integral calculus ) 

微分 (Differential calculus ) 

の3つの単語から,これら3要素すべてを 
利用した制御を PID 制御と呼ぶ。同様にし 
て,比例制御だけの制御を P 制御,比例制 
御と積分制御で PI 制御ということになる。 

ここで制御なしと, P 制御, PI 制御 , P 
ID 制御の比較図を図9にあげておく。こ 
うやって直接比較すると,その違いがよく 
図フ PI 制御 



図8 PID 制御 



目標値 


初期値 


わかるだろう。 

参考までにそれぞれの特徴を述べておこ 
ラ。 

• 制御なし 

実にゆっくりと目標値へと向かう。 

• P 制御 

制御なしよりははるかに早く H 標値に向 
かう。しかし目標値には安定しない。 

• PI 制御 

P 制御と同じように早く目標値に向かう。 
偏差の速度にも応じて制御するため,目標 
値に安定する。 

• PID 制御 

PI 制御と同じように早く目標値に向か 
う。偏差の将来を見越した制御を行うため, 
PI 制御よりも早く目標値に安定する。 

P , PI , PID と進むにつれて,より高度 
な制御になっていっていることがおわかり 
いただけるだろう。 


and 


以上のようにして制御対象と制御の2つ 
の要素を見てきた0これでシミュレーショ 
ンのモデルを把握できたことになる。 

モデルを把握したら,次にやるべきこと 
は当然,モデルをシミュレーションプログ 
ラムへと•置き換えていくことだ。方向自体 
は前回までの離散型とあまり変わらないこ 
とに気がついたろうか。そう,大筋では離 
散変化型も連続変化型も同じ道筋を通るの 
だ。コンピュータ上でシミュレーションを 
実現するという点でまつたく同じなのだか 
ら。しかし,どこかで差が出てくるはず。 

ずばり,差はこれ以降で出てくる。すな 
わち,連続変化モデルでは時間を中心にモ 
デルが記述される。たとえばの話,入力を 
図9制御を比較してみる 


x ( t ), 出力を y ( t ) とすると, 
a Xdy ( t )/ dt = x ( t )- y ( t ) 

のようにモデルの状態が時間の関数として 
表される。 

ということは,この数式を解くことに 
よってモデルの状態を知ることができる, 
ということになる。えっ,この式を解くの, 
とおそれをなす方もいらっしゃるだろう。 
確かにこんな微分方程式を解くなんて,楽 
なことじゃあない。 

それじゃあ数学が得意じゃないと駄目か, 
とあきらめるのはまた " 早い。ちゃんとした 
抜け道があるのである。正攻法が駄目なら, 
ほかの道を探せということだ。 

正攻法がまともに式を解くことだとする 
と,抜け道というのは,数値的に微分方程 
式を解いてしまおうという方法だ。詳しい 
説明は次回に譲る力 5 ',この方法ならば,た 
いていの微分方程式は簡単に解くことがで 
きる。微分積分の専門知識など不要。必要 
なのは本当に簡単な常識だけだ。 

というところまできたところで,今回は 
お開きにしよう。最後に,プログラムのパ 
ラメータの説明だけしておこう。 

• CLS 

0ならば前の画面を消さずに,上書きす 
る。0以外では画面を消去してからシミュ 
レーシヨンを実行する 0 初期値は1 0 

• LINE 

結果の描画モードを設定する。0ならば 
点で結果を表示し,0以外であれば線で結 
果を表示する。初期値は1。 

• Target 

制御の目標値,初期値は80。 

• Step 

時間の単位。時刻は Step ごとに刻まれ 
る。初期値は 0.1 であるから,時刻は 0.1 秒 



62 Oh ! X 1991.2. 





















ずつ進んでいることになる。 

• Kp , Ki , Kd , Kc 

制御のパラメータ。0以外の値であれば, 
その制御が行われる。すなわち制御なしで 
あれば Kc 以外が0, P 制御は Kp 以外が0 
ということになる。 

さらに PI 制御では Kd , Kc が0, PID 制 
御では Kc だけが0ということになる。も 
ちろん0以外の場合,値によって制御の効 
き方が変わってくる。 

初期値はそれぞれ45,5,0.5,0。 

• k,a 

これは次回に説明しよう。もっとも,値 
をいろいろと変えてみてどんな働きをして 
いるのか調べてみてもいいだろう。 

• Xamp , Yamp 

結果を表示する際の, X , Y 方向の倍率 
を表す。初期値はそれぞれ100, 2。 

今回のプログラムでは最初にパラメータ 
をセットした後,シミュレーションを実行 
する。パラメータは自由に設定できるから, 
いろいろな値を代入してみて,どんな動き 
をするのか見ておくといいだろう。 


NEXT 


今回は,連続変化型シミュレーションに 
ついて考えてみた。とはいっても,まだよ 
うやくモデルを把握した段階にすぎない0 
次回はこれをもとにいかにプログラムを 
作っていくかということを考えていく。 

さらに次回は流行のファジィにもふれた 
いと思っている。なんでも,うまくファジ 
ィ制御を行えば,今回の PID 制御よりもさ 
らに早く目標値に安定させることができる, 
というのだ。これをほおっておく手はない。 
この連載ではシミュレーションに関係する 
ものとあらば,なんでも取り上げていくつ 
もりだ,期侍してほしい。 

シミュレーションは現実では実現困難な 
ものを仮想の世界で実現させるためのもの, 
そして未来のことを知るための道具だ。そ 
の意味で大いなる可能性を秘めたものであ 
るといえる。未来を知ること,それは人類 
の永遠の欲望なのかもしれない,と思いつ 
つ,それではまた来月。 

参考文献 

• 「スキーの 科学 」 清水史郎著光文社 
• 「クル マの 速さが見えてきた」館内端著 
光文社 

• 「ディジタル制御システム」 b . C . クウ 著 
ホルト•サウンダース•ジャパン 
• 「ファ ジィ 制御」菅野道夫著日刊工業新聞 
社 

• 「化学工学実験1989」東京大学工学部化学 
工学学生実験室 




リスト1 


1000 

9 Simulation model Cl 

ver.1.00 

1010 

» 


1020 

f PID Controller for 

XI basic 

1030 



1040 

• 1990.12 (C) 

Caroroon 

1050 

1 


2000 

9 intialize 


2010 

WIDTH 80,25,0,2: KLIST 

0: KMODE 

2020 

•width 80 



2030 INIT 

2040 DEFDBL d,i,x-z 
2050 target =80 
2060 eels =1: sline = 
2070 k =.1 : a =1 
2080 kp = 45: ki = 5: 
2090 atp =.1 
2100 ampx = 100: arapy 
2110 DEF FNx(t) = 20 
3000 * 


3010 

3020 

3030 

3040 

3050 

3060 

3070 

3080 

3090 

3100 

3110 

3500 

3510 

3520 

3530 

3540 

3550 

3560 

3570 

3580 

3590 

3600 

3610 

3620 

3630 

3640 

3650 

3660 

3670 

3680 

3690 

3700 

3710 

3720 

3730 

3740 

3750 

3760 

4000 

4010 

5000 

5010 

5020 

5030 

5040 

5050 

5500 

5510 

5520 

5530 

5540 

5550 

5560 

5570 

5580 

6000 

6010 

6020 

6030 

6040 

6050 

6060 

6070 

6080 

6090 

6100 

6110 

6120 

6130 

6140 

6150 

6160 

6170 

6180 

6190 

6200 

6210 

6220 

6230 

6240 

6500 

6510 

6520 

6530 

6540 

6550 


REPEAT 
GOSUB 6020 
IF sole THEN CLS 0 
t=0 

idlzo = 0: ido = 0 : izo = 0 
x : FNx(0) 

yl=x : y2 = yl:y2o = yl : y3 = y2o 

do = target - y3 : zo = kp*do + kc 

mx2 = 0: myl2 = 200 - ampy*target 

my22 = 200 - ampy*x: my32 = 200 - arapy*y3 

IF Bline THEN GOSUB 5500 ELSE GOSUB 5020 


'main 
WHILE 


639) AND INKKY$ 


t*ampx 
t = t + atp 
x 二 FNx(t) 
yl=x 
y3 = y2o 
d = target - y3 
id = ido + .5 本 stp 拿 (do + d) 

dd = (d - do) / atp 
z = kp*d + ki 拿 id + kdtdd + kc 
iz = izo 4- ,5 拿 Btp 拿 <zo + z) 

dlz = k 拿 {a*iz - (idlzo + .5<8tp*dlzo)) / (1 + .5<stp*k) 
y2 = dlz + yl 

IF sline THEN GOSUB 5500 ELSE GOSUB 5020 
ido = id: do = d 
izo = iz: zo = z 

idlzo = idlzo + .5tstp* (dlzo + dlz) : dlzo = dlz 
y2o = y2 
WEND 

LOCATE 42,14 : PRINT "Do you need Hardcopy (y/n) n" 

LOCATE 69,14: INPUT '*" ,sure$ 

IF INSTR<"Yy ン ,. ,LEFTS (sure$ ,1))THEN GOSUB 4000 
LOCATE 42(14: PRINT "Do you wanna finish the job (y/n) n" 
LOCATE 76,14 : INPUT M ",aure$ 

UNTIL INSTR{"Yy ン " , LEFT$(sure$,1)) 

PRINT CHR$(&HB) : END 

LOCATE 42,14: PRINT "PID Control Simulator .. 

HCOPY 4 : RETURN 

9 

f drawing results 

PSET 拿 ampx , 200 - ampy<target ,1} 

PSET (t 拿 ampx 9 200 - ampy 拿 x , 5) 

PSET (t 拿 aropx • 200 - ampy<y3 , 2) 

RETURN 

9 drawing results - line 
mxl=t 拿 ampx: rayli = 200 - ampy<tar«et 
my21= 200 - ampy>x : my31= 200 - ampy 拿 y3 
LINE (idx2 , myl2) - (mxl,myll),PSET •1 

LINE (mx2 , my22) - (mxl , my21) , PSET • 5 

LINE (rox2 , roy32) - (mxl f my31),PSET , 2 

mx2 = mxl 

royl2 = myll: my22 = my21:my32 = my31 
RETURN 


9 set constant 
REPEAT 

CLS : LOCATE 40,12: PRINT •• r" 
FOR j=l TO11 
LOCATE 40 ,12 4 j 
PRINT M l ,, ; STRING$(37 f M " > ; 
NEXT 

LOCATE 40,24: PRINT 


; STRING! ( 37 t ,, - n 


vr$ = 
vr$ = 
vr$ = 
vr$ 
vr$ 
vr$ = 
vr$ = 
vr$ = 
vr$ = 
vr$ = 
vr$ = 
vr$ 


CLS ••: px = 42: py=16 
LINE ••: px = 60 : py=16 


STRINGS ( 37 f M - M ); り"; 
cvr=acls : GOSUB 6510: 8cls=cvr 
cvr=aline : GOSUB 6510: aline=cvr 
Target" : px=42:py=17 : cvr=target:GOSUB 6510:target=cvr 
Step ’ •: px = 42: py=18: cvr=atp : GOSUB 6510: stp=cvr 


Kp’. : px = 42: py=19 : cvr = kp : GOSUB 6510: kp=cvr 

Ki ”: px=60 : py=19: cvr=ki : GOSUB 6510: ki=cvr 

Kd ”: px=42: py=20 : cvr=kd: GOSUB 6510: kd=cvr 

Kc": px=60 : py=20 : cvr=kc: GOSUB 6510: kc=cvr 

k ”: px=42 : py=21 : cvr=k : GOSUB 6510: k=cvr 
a ”: px=60: py=21 : cvr=a: GOSUB 6510: a=cvr 
Xarop": px=42: py=22 : cvr=ampx : GOSUB 6510: anpx=cvr 
Yamp M : px=60 : py=22 : cvr=ampy : GOSUB 6510: anpy=cvr 
LOCATE 42,14: PRINT "Are you sure (y/n) y" 

LOCATE 61,14: INPUT "",sure$ 

UNTIL INSTR<"Yy>",LEFT$(sure$ , U> 

RETURN 

LOCATE 42,14: PRINT LEFTS(vr$+ M ",6>+" : ";cvr 

LOCATE 51,14: INPUT MM f cvr 

COLOR 4 : LOCATE px f py: PRINT LEFTS (vr$ + .. ",6} + " : ";cvr; 

COLOR 7 : LOCATE 42,14: PRINT STRINGS(36 f M ” > 

RETURN 


シミユレーシヨンブログラミング入門 63 










魅力的なソフトがないので スーパーファ ミ コンを 買う 
のはよそうと思っていた矢先,ドラタエ V の発表があっ 
てあっさりと心変わりした中森章です。それにしても, 
発売されたとはいえ,おもちゃ屋の店頭で見つけること 
のできない スーパー フアミ コンが 手に入るのはいつのこ 
となのでしょう。 

さて,今回の テーマは 配列です。配列はすべての プロ 
グラミングにおいて基本になるデータ構造です。今回は 
配列のうちでももっとも基本的な一次元配列について学 
んでいきましょう。なお,前回の予告では今月の テーマ 
が配列と文字列ということになっていました力 ? ,予定を 
変更して今回は配列だけです。文字列については今回と 
次回で配列に関しての知識を深めたあとの次々回に説明 
したいと思っています。 

配列とは何か 

以前も説明しました力 ? ,プログラムの基本はある変数 
の値を加工して別の変数に格納することです。プログラ 
ムではいろいろなデータ型の変数を扱いますが,変数の 
中には本質的に同一のものが存在しています。それらの 
変数をまとめて統一的に扱うためのデータ構造が配列で 
す。 

例として,何人かの人が受けた試験の得点を格納する 
変数を考えましょう。単純に考えれば,1番目の人の得 
点を格納する変数は markl , 2番目の人の得点を格納す 
る変数は mark 2, 3番目の人の得点を格納する変数は 
mark 3, ……というように別々に変数を宣言していきま 
す。ここで, 

markl , mark 2, mark 3,. 

という変数はある試験の得点という意味で同一のもので 
す。また,そのデータ型も同一のはずですね。今,試験 
を受けた人が4人いるとして,試験の得点の合計を求め 
ることを考えましょう。合計値を格納する変数を sum と 
すると, sum を求めるためのプログラム(式)は, 
sum = mark 1+ mark 2 + mark 3 + mark 4 
となります。この場合,人数が 4 人ですから合計値をす 
っきりとした式で表すことができますが,これが1000人 
だった場合はどうでし.ょう。まず変数の宣言が大変です。 
C 言語での変数宣言を考えると, 

int markl , mark 2 , . , mark 999 , marklOOO ; 

となり,とてつもない文字数です。また合計値を求める 
場合も, 


sum 二 marki + mark 2 + mark 3 十 

.+ mark 999 -hmarklOOO ; 

というように変数宣言と同じくらい(少し多い)の文字 
数になってしまいます。こんな大変な思いをしてまでプ 
ログラムを書く気は起こりませんね。そこで登場するの 
が配列というわけです。配列とは,日常語と同じく, 
順序を決めた並べ方(並べたもの) 

という意味です。そして,その考え方は, 

変数を順序だけで参照して扱う 
ということになります。先の得点の例でいえば, 
markl は1番目のデータ 
mark 2 は 2番目のデータ 


marklOOO は1000番目のデータ 
として扱うのが配列の考え方です。これは変数を番号で 
間接的に参照することにほかなりません。番号で参照す 
るということは,その番号として整数型変数の値を使用 
できるということです。番号を変数で指定できるとなる 
と,先の例の得点の合計値は,前回学んだ繰り返し制御 
構造を使って, 
sum = 0 ; 

for ( i = l ; iCIOOO ; i + + ) 

sum = sum-f i 番目のデータ] ; 

と,いとも簡単に記述できてしまいます。そしてこのこ 
と,すなわち,大量のデータを簡潔に扱うことこそが配 
列というデータ構造が存在する意味なのです。 

C 言語で配列を扱5 

それでは, C 言語における配列の使用法を具体的に説 
明しましよう。 C 言語で配列を扱うためには, 

• 配列の宣言 
• 配列要素の参照 
• 配列の用途 

を押さえておけば十分です。以下に順次説明していきま 
しょう。 

•配列の宣言 

配列とはデータを いくつか 並べたものですから,配列 
を宣言するためにはデータ(配列要素)のデータ型とデ 
ータの個数(要素数)を決定することが必要です。これ 
らが決まると配列は, 

データ型名前[定数式]; 

という形式で宣言することができます 1 >。[と1で囲まれ 





よラこそここへ C 言語 


配列って何だろう(その1 ) 


Nakamon Akira 

中森章 


プログラミング言語を学ぶ人が,初めて具体的なデータ構造と 
いうものに出会ろのがこの配列でしよラ。といっても難しい概 
念ではありません。ここでは,背景となる考え方から学んでい 
きましよろ。今回は一次元の配列です。 


9NIWWVU 90 Ud 


U 


64 Oh!X 1991.2. 













た定数式が配列の要素の個数を指定している部分です。 
さらに, 

名前[定数式] 

の部分をカンマ「,」で区切って並べることで,同じデー 
夕型の要素を持つ複数の配列を一度に宣言することも可 
能です。ところで, C 言語では〜型の配列という言葉を 
よく聞きますが,これは配列要素が〜型の配列という意 
味です。 

配列宣言の例を示しましょう。1000個の単精度浮動小 
数点データ ( float 型)を配列要素とする配列 fpa の宣言 
は, 

float fpa [1000]; 

となります。また,配列 fpa と同時に10個の単精度浮動小 
数点データを配列要素とする配列 fpb を宣言する場合は, 
float fpa [1000], fpb [10] ; 

となります。 

これらの例を見てわかるように,配列の宣言は配列名 
に [] が付随しているほかは変数の宣言とまったく同 
じです。実際,配列の宣言とただの変数の宣言を, 
float fpa [1000], fe,fpb [10]; 

というようにカンマで区切って同時に行うこともできる 
ようになっています ( fe がただの変数です)。結局,配列 
の宣言も変数の宣言の一種なのです。この意味で,当然 
のことながら,配列の宣言はプログラム中で変数の宣言 
をしている部分と同じ場所に書かなければなりません。 


”ここではもっとも単純な場合の宣言を示してある。 c 言語では 
ポインタの配列や関数の配列といった宣言も可能であるが,これら 
については今後の連載で説明する予定である。 

•配列要素の参照 

配列を宣言するということは配列の要素を番号で参照 
するということです。この考え方は C 言語に限らずすべ 
ての列型を持つ)プログラミング言語で共通ですが, 
番号の付け方は各プロダラミング言語で必ずしも同じで 
はないので注意が必要です。 C 言語では配列要素を参照 
するための番号(これを添字という)は0から始まりま 
す。すなわち,1番目の要素を参照するときの添字は0 
で,最後の要素を参照するときの添字は(要素数一 1) 
です。 

それでは,配列要素の参照方法です。 C 言語では配列 
要素を参照するために専用の演算子が用意されています。 
この演算子を使用して,配列名と添字を演算することで, 
添字で指定する配列要素を参照することができるように 
なっています。少し難しい表現をしてしまいました力す, 
その内容はぜんぜん難しくありません。 C 言語で配列要 
素を参照する演算子とは [] のことなのです。どこかで 
見たことはありませんか。そうです,配列を宣言すると 
きに要素数を指定する[と]は演算子としても使用され 
るのです 2 )。 

このとき [] 内には添字(を表す式)を指定し,それ 
を配列名のあとに書きます。たとえば, 
fpa [2] 

という表現は配列 fpa の添字2 (つまり3番目の)の要素 
を示しています。もし,この配列要素の値を1にしたい 


のであれば, 

fpa [2] =1; 

という式を書けばいいですし,逆にこの配列要素の値を 
別の変数 x に代入したいのであれば, 
x = fpa [2] ; 

という式を書けばいいでしょう。演算子などと難しいこ 
とをいっています力 5 ',ごく自然な方法で配列要素を参照 
できるのがわかるでしよう。 

配列要素の参照の方法についてくどくどと説明してき 
ました力 5 ',実用上は, 
float fpa [1000]; 

という1000個の要素を持つ配列の宣言は, 

fpa [0], fpa [1], fpa [2],. , fpa [999]; 

という添字で参照できる1000個の変数を宣言したのだと 
思って差し支えないでしよう。 


2) 配列宣言時の [] は演算子ではなく,単なる記号である。まぎ 
らわしいといえばまぎらわしい。逆に, FORTRAN や PASCAL などほか 
のブログラミング言語からの類似(宣言時に個数を指定する記号と 
参照に使う記号が同じであること)と思えば当然である。 

•配列の用途 

配列の宣言と参照方法を押さえたところで,配列の用 
途について考えましよう。 

配列のイメージは番号(添字ですね)を付けられた変 
数ですから,容易に考えられる用途は統計処理です。ち 
よっと表現が大袈裟ですが,要は複数個のデータを番号 
を付けて扱うことができるということです(先に述べた 
試験の得点の合計を求める例もこれですね)。一連のデー 
夕を添字付きで扱うことができれば,総和,平均,標準 
偏差など統計量の計算は思いのままです。また,昇順, 
降順のソーティング(並び換え)にも便利です。 

配列のもうひとつの用途はテーブル,つまり表の実現 
です。この場合,配列の添字は順番を示す単なる数字で 
なくなんらかの意味を持っています。たとえば,配列の 
添字が整数の集合を代表している場合を考えます。この 
とき,ある整数値(これが添字になる)に対応する配列 
の値は,添字である整数になんらかの変換を加えた結果 
(難しい言葉でいえば写像)とみなすことができます。 

具体例を示すと, 
root [0] 力 ? 0.0 
root [1] 力 ? 1.0 
root [2] 力 5 ' 1.414 
root [3] が1.732 


であるような浮動小数点型の配列 root は添字で与えられ 
る整数の平方根を値としています。これは平方根の表に 
ほかなりません。また,添字を整数以外の項目に対応さ 
せることもできます。たとえば,字0の値は身長,添 
字1の値は体重,添字2の値はバスト,添字3の値はウ 
エスト,添字4の値はヒップといラように考えることで, 
配列をある個人に関するデータを示す表とみなすことも 
できるのです 3 、 

配列の用途を大ざっぱに分類すれば上の2つになりま 
す 4 2つの違いはプログラムで配列の要素や要素の順 


PROGRAMSING 


ようこそここへ c 言語 6 b 






3> 身長,体重,……など,ある I つの データに関する異なる属性を 
まとめて表現する場合は構造体を使うのが一般的。 

め実は,配列にはもう I つの用途がある。 C 言語では文字 ( char 型) 
の配列で文字列を表す。この場合,配列の要素が変わることも要素 
の並び方が変わることもないので一種の表と見なせないこともない。 
文字列についてはのちの連載で説明する予定である。 

配列の初期化 

配列を使用する場合,特に配列を表として使用する場 
合,配列要素にあらかじめ初期値を与えておきたいこと 
があります。ここでは配列の要素を初期化する方法につ 
いて説明しておきましよう。 

配列の初期化は配列を宣言するときと同時に行います。 
このとき,宣言のあとに配列要素カンマ「,」で区切った 
初期値のリストを{と}で囲み,=でつなぎます 5 たと 
えば,添字が月の番号 (1 月,2月という)を表し,配 
列要素が添字で与えられる月の日数''(閏年は考えない) 

を値とするような int 型配列 days を初期化するためには, 
その宣言時に, 

int days [13] ={ 0, 31, 28, 31, 30, 31, 30, 

31, 31, 30, 31, 30, 31} ; 

と書けばよいのです。ここで配列の要素数が13個になっ 
ているのは添字の上限を12にし,添字 n が n 月に対応す 



序を変更するかしないかによります(要素や順序を変更 
しないのが表です)。しかし,これはこういう使い方が多 
いというだけで配列を用いるプログラムの書き方になん 
ら制限を課するものではありません。 

実際のプログラムでは配列を添字付き変数として使用 
しているのか表として使用しているのか区別できない場 
合のほうが多いかもしれません。また,配列の要素に関 
しても,それがさらに配列であったり,構造を持った複 
合的なデータ型だったりして複雑な使われ方をしている 
ことが結構あるようです。それらは,見掛けは複雑です 
(それだけいろいろなことに使えるということ)力 ? ,基 
本的な考え方は上の2つの用途から大きくはずれるもの 
ではありません。私たちの心づもりとしては, 

•いくつかの変数を添字を付けて統一的に扱う 
• 表を実現する 

という必要があるときには配列を使用するということで 
す0 


るようにするためです。添字0の部分はダミーで使用し 
ません。 

配列の初期化においては,配列名から初期化の終わり 
の}までがひとつの変数(配列)の宣言と見なせます。 
したがって初期化付きの複数の配列の宣言をカンマで区 
切ってほかの変数宣言と同時に行うこともできます。 

int a [3] = {1,2, 3}, b,c [5], d [2] = {100,200}; 
という変数宣言の記述が何を意味するかは説明するまで 
もありませんね。 

ところで, C 言語では要素数を指定しない配列宣言も 
許されます。これを不完全型(大きさが不定という意味) 
の配列宣言と呼びます。不完全型の配列を使用するため 
にはなんらかの方法で完全型にしなければなりませんが, 
ここでは難しい話はやめておきましよう。不完全型の配 
列を完全型にするためのひとつの方法が初期化であると 
いうことを覚えておいてください。そのとき,初期化リ 
ストの中の要素の個数が配列の要素数と見なされます。 
int a []= {1,2,3, 4} ; 

という不完全型の配列の初期化では,配列 a の要素数は 
4個と見なされ,その要素である a [0 ], a [1 ],a 
[2], a [3] の値をそれぞれ1,2,3,4に初期イ匕します。こ 
の(初期化を付けた)不完全型の配列宣言は要素数が非 
常に多い表を配列で実現するとき,あるいは要素数があ 
とから変更される可能性のある表を配列で実現するとき 
によく使用されます。 

話は横に逸れますが,このような配列の要素数を計算 
するためには sizeof という演算子を使えば簡単です。 
sizeof とは変数の占める領域の大きさ(バイト数)を計算 
する演算子ですから, 

sizeof ( 配列名 ) /sizeof ( 配列要素のデータ型) 

が配列の要素数になります。たとえば, 

float fpa [ ] = {1.0, 1.4, 1.7,.} ; 

と宣言されている配列の要素数は, 
sizeof ( fpa )/ sizeof ( float ) 

という式で知ることができます。 


5> 配列を初期化する要素の形式は定数式(コンパイル時に値が計 
算できるもの)が基本である。関数の先頭で行われる(動的な)配 
列の初期化ではその実行時まで値の決まらない式でも許される。つ 
まり, 
f ( x ) 
int x ; 

{ int a [3] = { x + I ,x + 2 / x + 3}; 


のような初期化も可能である。 x + I , x + 2, x + 3 という値は関数 f が 
呼ばれたときに計算され配列 a に代入される。このような初期化は 
GCC ではもちろん可能であるが, XC では制限が付く。 XC の ver . I . O で 
は動的な配列宣言を初期化することはできない。 XC の ver .2.0 では動 
的な配列宣言の初期化は定数式のみが許される。 

♦基礎力を高めよ 

設問1次に示す配列の宣言が(文法的に)正しいとき 
は〇,誤っているときは x をつけてください。 

1) int x [ ] = {1, 2, 3,}; 

2) int y [2] = {1, 2, 3} : 

3) int z [ ] = {2,}; 

4) int w [3] = {1}; 


ONIWSVSOU 


o 


66 Oh!X 1991.2. 







/* 平方根を求める関数 sqrt を使うためのオマジナイ*/ 
#include < math . h > 

int mark[J ={ 

60, 90,15, 81, 65, 100, 75, 81), 85, 72, 55, 60, 85, 
77 , 10 , 48 


int v[ sizeof (mark ) / sizeof ( int) ) ; /* 偏差値を入れる */ 

double heikin, /* 平均 木 / 

hyojun, /* 標準偏差 V 
bunaan, /* 分散 */ 

sum; /* 爸計 */ 

int n=sizeof(mark)/sizeof(int); / > 要 索数 */ 

main() 

{ 

int i; 
sum=0; 

for(i=0;i<n;i++) 

sum = sum + mark[iJ ; 
heikin = sum/n; /* 平均を求める */ 

sum=0; 

for(i=0;i<n;i++) 

sum = sum + (markliJ-heikinmark[iJ-heikin); 
bunsan = sum/n ; /* 分散というやつ本 / 

hyojun = sqrt (bunsan) ; ft こ: が樣每偏差 */ 

for(i = 0;i<n;i + +) /* 偏差値の計篝です */ 

v[i] = (mark[i]-heikin)*10/hyojun + 50; 

for(i=0;i<n;i++) 

printf (•,番号 %d¥t : 得点 %d¥t :偏差値 %d¥n M , 
i, mark[i], v[i]); 

printf { ,,平均 % f :棵準偏差 % f¥n", heikin, hyojun ); 


/* 


配列で統計的な処理を行う 


リスト1の実行結果 


も覚えておきましよう。 

籲配列を表として使5 

いくつかの値に対する三角関数(正弦)の値を格納し 
てある配列を使って,入力された任意の値に対する正弦 
値を計算するプログラムがリスト2です0リスト2の 
sinTab という配列には三角関数 sin への入力値を0から 
tt /4 の範囲で0.01きざみに変化させたときの値が入って 
います。すなわち, 

sinTab [0] は sin (0) 
sinTab [1] は sin (0.01) 
sinTab [2] は sin (0.02) 
sinTab [3] は sin (0.03) 


Q 


o 

70 

3 

3 

z 

o 


U スト 1 


5) int v [3] = {1,}; 

6) intu [2] = {1+2, 3*4/2}; 

7) int a [2* 3+1]={0}; 

8) int b [3] = { }; 

9) int c [ ] = { }; 

10) int d []; 

設問 2 次に示す配列要素の参照方法が(文法的に)正 
しいときは〇,誤っているときは x をつけてください。 
ただし, 
int x ; 

int array [3] = {1,2,3} : 

がすでに宣言されているものとします。 

1) x = array [2] ; 

2) x = array [1]+2 ; 

3) x = array [一 2] ; 

4) x = 2 [ array ] ; 

5) x = [ array ] 2 ; 

6) x = [2」 array ; 

7) array 乂 2] = x ; 

8) 2 [ array ] = x ; 

9) array [ l ]+2 = x ; 

10) x = ( x +1) [ array ]; 

(解答は 68 ページ) 

一次元配列を扱 5 プログラム 

それでは,配列を使った実際のプログラムを紹介しま 
しよう。ここでは典型的な配列の用途に従って2つのプ 
ログラムを作っています。すなわち,統計処理(もどき) 
のプログラムと配列を表として使うプログラムです。 

•統計処理もどき 

与えられた配列に何人かの試験の得点が格納されてい 
る場合に,得点の平均と標準偏差を計算し,さらに各自 
の得点の偏差値を計算するプログラムがリスト1です。 
得点はあらかじめ mark という int 型配列の中に初期値と 
して格納されています。 

このとき,平均や標準偏差は次の式で計算できます (n 
は要素数)。 

平均 = (mark [0] + mark [1] + . +mark [ n ])/ 

n 

分散 ={(mark [0] —平均) 2 +(mark [1]—平均) 2 

+. 

.+ (mark [ n ] —平均 ) 2 } /n 

標準偏差 = 

また,受験生にとって頭の痛い偏差値は, 

(mark [ i ] 一平均)*10/標準偏差+ 50 
という式で計算することが多いようです(この式は添字 
i の得点の偏差値)。これだけの式がわかれば,あとは繰 
り返し制御構造である for ループを使って簡単に計算で 
きますね。 

ところで,リスト1のプログラムは int 型と double 型の 
変数をそのまま演算しています。このような場合, C コ 
ンパイラが(もっとも自然な結果が出るように)適当に 
変数の型を変換して計算してくれるのです 6 、このこと 


るめ 
い求 
てをる 
れ差す 

さ偏 II 

納準計 
格槻を 
にと11 
k 均差 
ar 平偏 
In のの 

列点自 

配得各 


1234567890123456789012345678901234567890123456789 

1111111111222222222233333333334444444444 


7 9 8 6 9 3 3 5 7 2 5 7 7 4 6 2 4 
452 5 465 5 554455248 
7 

商资值泡 flfiffifls 齒 flflllgfl 9< fi ( l 8(£ ffi ( i 6 
差差差差差差差差差差差差差差差差. 1 
_偏;3塥娟偏偏偏偏偏偏偏偏 (i 偏偏24 

. ^ 

偏 

準 

〇 揀 

了 

点点点点点点点点点点点点点点点点00 

得得 fl » 得得得得得得得得得得得得得 50 


号号号号导 nlr ^ 号^号号号号号号号导均 

rVa {J s 昏 su § sn & ¢1 


ようこそここへ c 言語 67 









という関係になっています。したがって sin を求めるべき 
値が与えられると,それを100倍した値(端数は切り捨て) 
を添字と見なして配列 sinTab を参照すれば値が得られ 
るという仕組みです。このやり方は入力が, 

O.xx 

というように小数点以下2位までで表せる場合はいいの 
ですが,もっと半端な場合も計算できなければおもしろ 
くありません。そこで入力を100倍した値が i (端数を切 
り捨てている)であるとき, 

sinTab [ i ] から sinTab [i + 1] までの値が 
入力に対して直線的に変化している 
と仮定して入力の端数で直線近似を行うことにします。 

リスト2では sinTab [ i ] と sinTab [i + 1] の間を10000 
分割して近似値を求めています。リスト2では実際の sin 


リスト2 


1:ハ 


2 

3 

4 


配列を表として使う 

三角間数 < sin > を近似計算する 


6 

7 

8 
9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 
21 
22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 
61 
62 


/* 三角関数 sin (答え 
# include < math . h > 

/* この配列には sin の 
double sinTab[J = { 

0 . 000000000000000 , 
0.0299955002024 96, 
0.0599640064794 45, 
0.0898785491980 11, 
0.119712207288920, 
0. 1494381324736 00, 
0. 1790295734258 20, 
0.2084598998461 00, 
0.2377026264271 30, 
0.2667314366888 30, 
0.295520206661340, 
0.324043028394870, 
0.3522742332750 90, 
0.380188415123160, 
0.4077604530595 70, 
0.4349655341112 30, 
0.461779175541480, 
0.4881772468829 10, 
0.5141359916531 10, 
0.5396320487339 70, 
0.5646424733950 40, 
0.5891447579422 70, 
0.6131168519734 30, 
0.6365371822219 70, 
0.6593846719714 70, 
0.6816387600233 30, 
0.703279419200410 


合わせ用)を使うため 


値を0からパの範囲 

0.009999833334166, 
0.039989334186634, 
0.069942847337533, 
0.099833416646828, 
0.129634142619690, 
0.159318206614250, 
0.188858894976500, 
0.218229623080870, 
0.247403959254520, 
0.276355648564110, 
0.305058636443440, 
0.333487092140810, 
0.361615431964960, 
0.389418342308650, 
0.416870802429210, 
0.443948106965520, 
0.470625888171160, 
0.496880137843740, 
0.522687228930660, 
0.548023936791870, 
0.572867460100480, 
0.597195441362390, 
0.620985987036560, 
0.644217687237690, 
0.666869635003700, 
0.688921445110550, 


のオマジナイ*/ 


で 0.01 きざみに格納*/ 

0.019998666693333, 
0.049979169270678, 
0.079914693969173, 
0. 109778300837170, 
0. 139543114644240, 
0. 169182349067000, 
0. 198669330795060, 
0.227977523535190, 
0.257080551892160, 
0.285952225104840, 
0.314566560616120, 
0.342897807455450, 
0.370920469412980, 
0.398609327984420, 
0.425939465066000, 
0.452886285379070, 
0.479425538604200, 
0.505533341204850, 
0.531186197920880, 
0.556361022912780, 
0.581035160537310, 
0.605186405736040, 
0.628793024018470, 
0.651833771021540, 
0.674287911628150, 
0.696135238627360, 


int n=sizeof ( sinTab ) / sizeof (double ) ; /本 SI 列の!? 索数本/ 
double x , y ; 
int i . j ; 

main() 

{ 

printfr 浮動小数点(約 0.785 以下 )?" 
scanf (" Xlf ",& x ); 

i=x*100 ; /* 100 倍すれば添字になる */ 

j=x* 1000000 -i*10000; /* 小数点第 3 位以下を求める */ 

y=( sinTab[i+l] 本 j + sinTabti 】 ♦ < 10000-j) )/10000; 

/* 小数点第 3 位以下に值があるときは直練近似*/ 

if(i>=(n-l)){ 

printfr%f は範囲外です ¥n", x) ; 

else { 

printf) :% f 彡 ミ % f {%f)¥n", 

x, sinTab[i], y, sinTab[i + 1J, sin(x )); 


U スト 2 の実行結果 


浮動小数点《約0.785以下>? 

sin (0.555555 ) :0.522687 ^ 0.527408 ^ 0.531186 {0.527414} 

浮動小数点(約0.785以下}? 

sin (0.234567) :0.227977 ^ 0.232418 ^ 0.237702 (0.232422) 


関数の値と比^^するようになっていますが,結果は有効 
数字4桁程度の精度で正しく計算できているようです。 
思ったほどの精度は出ませんでしたが,まあ愛敬ですね。 


6, 異なる型どうしの演算ではちゃんと型変換を明示したほうがい 
いという意見もある。型変換は変数の前に変換するデータ型の名前 
を () で囲んで示す。たとえば var が int 型の変数であるとき, 
( double)var 

は double 型への型変換になる。これを型のキャストという。 

氺 

今回は C 言語のデータ構造の中でもっ t もポピュラー 
な一次元配列の解説を しま した。配列は添字でデータを 
扱えるのが最大の特徴です。前回説明した繰り返し制御 
構造はまさにこの配列要素を扱うのに最適な制御構造で 
す。制御構造と配列を征服すれば,ちょっとしたプログ 
ラムならば書けるようになるはずです。これらは C 言語 
のプログラミングの基本ですから,各自大いに復習,自 
習に励んでくださいね。来月は一次元以上の配列につい 
て説明したいと思います。それではまたぉ会いしましょ 
ラ 0 

氺氺ホ 

♦基礎力を高めよラの解答"" III " 川"""|"""""酬_|__川川酬 
設問 1 DO 2 )x 3)0 4)0 5)0 
6)0 7)0 8)0 9)0 10)0 

解説 

1 ) , 3), 5) :初期化リストの最後のカンマはあってもなくてもよい。 
UNIX 上のコンパイラでは最後に余計なカンマを付けるとエラーに 
なることもある。 

4), 5), 7) :初期化リストの要索数が配列の要素数に満たないとき 
は,残りの要素は0で初期化される。……ことになっているが , GCC 
や XC では残りの要素の値はなぜか不定になっている。 

6), 7) :配列の要素の個数の宣言や初期化リスト内の初期値は結果 
が定数になる式で害いてよい。 

2) :初期化リスト内の要素数は宣言した配列の要素数より多くては 
いけない。 XC ではエラーになるが, GCC では警告に留まり配列の要素 
数を優先する。 

8) :初期化がない配列宣言と同じこと。 

9) :文法的には正しいが意味的にはおかしい。初期化を行うという 
ことは(この場合は実際には初期化を行わないが),そこに実体があ 
るということである。しかし,配列宣言自体は不完全型であり大き 
さが不定になっている。これは実体のない配列の宣言したことにな 
る。このような配列の要素を参照しても意味がない。 10) との違いに 
注意すること。 

10) :これは d という変数が int 型の配列であるということを示して 
いるだけで, d という配列を宣言したわけではない。本当の配列 d 
の宣言は(おそらく)別ファイルの中で行われている。 

木 ホ氺 

設問2 1)0 2)0 3)0 4)0 5 )X 

6 )x 7)0 8)0 9 )x |〇)〇 

解脱 

4), 8), 10) :配列要素を参照する演算子は, 

x [ Y ] 

の形でのみ使用できる。通常は x が配列名, y が添字であるが , x 
と y が逆でもかまわない。したがって, 4), 8), 10) のような記述も 
できる。ただし,このような記法をする人はよほどのへそまがりで 
ある。 

3) : [] は単なる演算子であるから添字として与える値は負の数で 
もよい。負の添字は配列要素の参照では意味がない(許される添字 
の範囲外)が,ポインタに対して [] を用いるときにはそれなりの 
意味がある。ポインタと配列の関係はこの連載でもそのうちじっく 
りとやりたいと思うが,今はこの程度の理解でよい。 

9) :代入文の左辺に式が窨けないのは変数の場合と同じ。 


68 Oh!X 1991.2. 





111111111 訓 11111111111111111 X 68000 マシン i 吾プロク'ラミ:ング 1111111111111111111111111111 


Chapter. 





ソーティングプログラム(前編) 


プログラミングを学ぶ者が一度は心ひかれるソートの技法。アルゴ 
U ズムの違いが大きな効果となつて表れるだけに,多<の先人だち 

がさまざまな手法を研究してきましだ。アルゴ IJ ズムを考える楽し 
さと実際にコーデインクする際の工夫を味わって<ださい。 


今回はだいぶ前に予告しておいた“ソート”を取 
り上げる。予想外に原稿が膨れ上がってしまったの 
で(失敗),ブチンと2つに割って,前後編の2回 
に分けてお届けする(ま,のんびりやるさ)。 

ソート ( sort )。 名詞形ならソーテ イング (sorti 
ng ) 0 並べかえ,整列,分類,順序づけ,などと訳 
される。説明するまでもなく,データ列を決められ 
た順序に並べかえる操作のことをいう。ソートは, 
サーチ ( search : 探索,検索)と並んでアルゴリ 
ズムの良否が露骨に実行時間に反映する操作だ。だ 
からなのだろう,とっくの昔に諸先生によって研究 
し尽くされて,アルゴリズムが確立している分野で 
もある。今回は,そうやって先達が考え出したアル 
ゴリズムを棚からボタモチとばかりに拝借して,68 
000のアセンブリ言語でコーデイングしてみようと 
いうわけだ。 

参考文献としては, Wirth の名著 『Algorithms 
+Data Structures = Programs 』, あるいは,そ 
の改訂版である 『 Algorithms&Data Sturucturesj 
を勧めておく (邦題はそれぞれ『アルゴリズム+デ 
ータ構造=プログラム』,『アルゴリズムとデータ構 
造』)。より深く知りたい人には Knuth の 『TheAr 


• サブルーチン名は常に sort 。 

•動作試験用プログラム 

今回の各リストでは,冒頭に必ず注釈として,80 
00個のランダムデータからなる配列をソートしたと 
きの実測時間 2〉 を1/100秒単位で入れてある。ソート 
時間の計測には,リスト1に示すプログラムを使っ 
た。脇役にすぎないプログラムだが,いちおう簡単 
に触れておく。 

リスト1は, IOCS コール ONTIME を使って1/1 
00秒単位でソート時間を計り,表示する 。 ONTIME 
は X 68000 を起動してからの時間を1/100秒単位で返 
すから, ソートルー チンを コールす る直前と直後に 
ONTIME を呼べば,その戻り値の差でソートにか 
かった時間が得られる。このような計時のときには, 
計時開始時と終了時とでそれぞれ単位時間(いまの 
場合は1/100秒)の誤差が発生する可能性がある。 
リスト1では,28〜32行で“1/100秒単位の時間の 
変わり目”を待っことで,計時開始時の誤差は(ほと 
んど)消している力す,終了時にはなにもしていない。 
リスト1では,切り捨てを行う方向に,まだ最大1/ 
100秒の誤差が残ってい る ことを覚えて おいて もら 
いたい 3 )〇 


I )昇順とは小さい順のこと。 
逆は降順。 


2) テストは, 0 PMDRV . X は 
OFF にし,そのほか割り込み 
をかけまくる常駐プログラム 
• デバイスドライバの類もは 
ずした状態で行った。 


3) もっとも,誤差は計測の 
常ではある。なお,本当は30 
〜33行のような細工をせずに, 
数回実行して平均をとったほ 
うが,より正確な時間が得ら 
れるはずだが,今回はその手 
間を惜しんだ。 


t of Computer Programming 』 のうちの 1 冊(邦 
題は何ていったかな? 失念した)がある。 

| m 

今回は,各ソートアルゴリズムごとに, 

• アルゴリズムの概要 
• プログラム例 

•改良案(アルゴリズム上の改良だったり,マイナ 
一な最適化だったり,いろいろ) 

を,たんたんと並べるスタイルで進める。プログラ 
ム例はソートを行うサブルーチン本体のみとし,各 
サブルーチンは以下の仕様に統一した。 

•扱うのは32ビット符号つき数値の配列。 

• ソートは昇)傾 1 )に行う。 

• 引数は“配列の末尾のアドレス+1”と“配列の 
先頭アドレス”をこの順でスタックに積んで渡す。 


1/100秒単位で得た時間を文字列に変換する処理 
には,手抜きして, FLOATn . X の フアンクシヨン 
コール USING を使っている(という わ. けで,テス 
トプログラ ムの 実行時には FLOATn . X が組み込ま 
れていなければならない)。 FLOATn . X の ファン 
クシヨンコールに ついては,きっと,そのうち“ 算 
術計算 (!?)” かなんかのテーマのときに取り上げる 
機会があると思うから,いまは無視してしまう。ど 
うしても気になる人は XCVer .1.0 ( Ver .2.0 は不 
可)の FEFUNC . H というファイル中の注釈か,数 
値 演算プロセッサ ボードのマニュアルか,市販の解 
析本 『 X 68000 環境 ハンドブック』 を参照されたい。 
籲動作試験の方法 

試験の対象となるソートルーチンとリスト1とは, 
リンク時に結合する。リンクは(ソートルーチンの 
オブジェクトファイル名が S 0 RT 1.0 だとすると), 
A>LK SORTTEST SORT 1 


x 6 8000 マシン語プログラミング 69 

















ソートルーチンの動作餘繫用フ’ログラム 


.include 
.include 
.include 


doscall.mac 
iocscall.mac 
const.h 


.xref 

本 

MAXDATA equ 

本 

FPACK macro 
.dc. w 
endm 


.text 
.even 


sort 

8000 


callno 

callno 


$fel8 


tloop : 


lea. J 
bsr 


IOCS 
move.1 
IOCS 
cmp.1 
beq 

move.1 


mysp,sp 
readdata 


_ONTIME 

d0,d6 

ONTIME 

d0,d6 

tloop 

d0,d6 


lea.1 sdata(pc),a0 


pea. 
pea. 
bsr 


0(a0,d7.1) 

(a0) 

sort 


addq.1 #8,sp 

IOCS _ONTIME 


sub.1 
bpl 
add.1 


d6,d0 
tskip 

#24 本 60 本 60 本 100 , d0 


本デ . 夕の Jft 大個数 

*FLOATn.X の 
* ファンクション呼び出し用 
* マクロ 

本整数-文字列変換コール 
本(桁数指定つき) 


»データを統み込む 
*d7= 配列の大きさ 

*郴獼始 

*d6.1 = 仮の開始時刻 
* 1/1 仙秒単.位の 
* 時間の変わり目を 
* 検出する 
*d6 = 開始時刻 

* & 0 =ソートする配列 

* 配列末尾 +1 のァドレス 
本 fid 列先^のアドレス 
* ソートする 
% 

* 時刻を得る 

本 d0=V — 卜に要した時間 


tskip : 


lea.l temp(pc) , a0 
moveq.1 #7,a 1 
FPACK IUSING 


bsr 

pea.1 
DOS 
pea.1 
DOS 

bsr 

DOS 


conv 

tempi pc} 
.PRINT 
secmes(pc) 
_PRINT 

writedata 

EXTT 


* 負の場合は 24 時間 分補正する 
* 、ノー トに要した 時間を 
* 10進7桁揣めて 
»文字列に 変換する 

*1/ 100 秒取位から秒単位へ 

* ソートに要した 
* 時間を表示する 


いノー ト結果を書き出す 


データをフアイルから読み込む 


readdata : 

move. w 
pea. 1 
DOS 

addq.1 
move.w 
bmi 

move.1 
pea.1 
move.w 
DOS 

move.1 
bmi 

DOS 


#ROPEN,-(sp) 
1(a2 ) 

_OPEN 

#6,sp 

d0,dl 

error 

<MAXDATA*4, 
sdata(pc) 
d1,-(sp) 
_READ 
d0,d7 
error 

CLOSE 


• ( sp) 


82 

83 

84 

85 

86 

87 

88 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 
100 
101 
102 

103 

104 

105 

106 

107 

108 

109 

110 
111 
112 

113 

114 

115 

116 

117 

118 

119 

120 
121 
122 

123 

124 

125 

126 

127 

128 

129 

130 

131 

132 

133 

134 

135 

136 

137 

138 

139 

140 

141 

142 

143 

144 

145 

146 

147 

148 

149 

150 

151 

152 

153 

154 

155 

156 

157 

158 

159 

160 
161 
162 


lea.l 


10(sp),sp 


andi.l #$f f f f_f f fc ,d7 *d7 = ソートする砂 IJ の株 M イト数 

* ( ロングワード単位) 

beq error 

rt8 


* ソート結果をファイルに書き出す 

本 

wntedata : 

move. w # ARCHIVE ,- (sp) 
pea. 1 dfile(pc) 

DOS _CREATE 

addq.1 #6,sp 

move.w d0,dl 
bmi error 

move.1 d7,-(sp) 

pea.1 sdata(pc) 
move.w dlsp) 

DOS _WRITE 

cmp.1 d7,d0 
bne error 


DOS 
lea . 】 
rts 


_CLOSE 
10( sp),sp 


エラー 終了 


pea.1 errmes(pc) 
DOS _PRINT 

move.1 #1,-(sp) 

DOS EXIT2 


1 バ 00 秒単位 h ►秒単位変換 


skipl : 


skip2 : 


dfile: 
errmes : 
secmes : 


temp : 
sdata : 


mystack : 
mysp: 


lea.l 
lea.l 
moveq.1 
moveq.1 
clr. b 
move.b 
move.b 
cmp. b 
bne 

move.b 
move.b 
move.b 
move.b 
cmp. b 
bne 

move.b 
rts 


data 

even 

dc.b 

dc.b 

dc.b 

bss 

even 

da. b 
ds.l 

stack 

even 


temp+7{pc),al 
temp+8(pc) , a2 
#$20, dl 
#•0 , , d2 
(a2) 

-(al) f -(a2) 

-(al),d0 

dl , d0 

skipl 

d2 , d0 

d0,-(a2) 

#' . • , - (bl2) 
-(a2),d0 
dl,d0 
skip2 
d2,(a2) 


1 sort.out ', 0 
上ラーが発生しました ’ , CR,LF,0 
r sec. ' ,CR,LF,0 


ds.l 

end 


10 

MAXDATA 


160000 +256 
ent 


木数侦変換 用 
* ソートデータ 格^域 


* スタック 領域 


4) リスト丨では162行の . en 
d 疑似命令で実行開始アドレ 
スを指定しているから,リン 
ク順序を変えても大丈夫。 


とやってもいいが, 

A>LK SORTTEST SORT1/oSORTl.X 

あるいは, 

A > LK SORT1 SORTTEST 4 > 

のようにして,ソートルーチンごとに実行ファイル 
にも別のファイル名をつけたほうがなにかと楽だ。 

テスト用のデータはファイルとして(たとえば, 
SORT.INP というファイル名で)用意し, 
A>SORTl SORT.INP 


のように実行時の引数として指定するようになって 
いる。データファイルはリスト 2 のような X-BAS 
1C プログラムで作成するのが手軽だろう。 70-100 
行あたりの注釈で殺してある各行を適当に復活する 
ことで,作為的なデータを作ることもできる。 

ソート 結果は無条件に SORT.OUT というファイ 
ル名で出力される。あらかじめ動作が確認され てい 
る ソート プログラムを 使って ソートしたファイルを 
(たとえば, ORDERED.DAT というファイル名で) 


U スト1 SORTTEST . S 


1234567890123456789012345678901234567890123456 7 8901234567890123456789012345678901 
111111111122222222223 3 33333333444444-444455 5 555555566666666 6 677777 7 77 7 788 


7 Q Oh ! X 1991.2. 





用意しておき, FC . X を使って, 

A>FC SORT.OUT ORDERED.DAT /B 

というようにファイル内容を比較することで,ソー 
卜が正し〈行えたかどう力、が確認できる(バイナリ 
ファイルの比較を指定する / B スイツチは必ずつけ 
ること)。 

では,ここからが本題。 

| 

#アルゴリズム 

ソートのもっとも原始的なアルゴリズムに,単純 
交換法がある。配列中の隣り合った要素を比べ,位 
置関係が狂っていたら交換するという操作を繰り返 
すことでソートしていく方法だ。 

1) まず,配列末尾の2要素に注目し,大小関係が 
狂っていたらその位置を交換する。続いて,注目す 
る位置を1つ手前にずらし,また,比較して,必要 
なら位置を交換する。以下,同様に配列先頭に達す 
るまで比較•交換を繰り返す。図1に示すように, 
小さな値は順繰りに前に送られていく形になる。こ 
こまでが1回分の“ パス”。 

2) この時点で先頭には配列中の最小値がある。先 
頭要素は確定したから,もう忘れてしまってよい。 
そこで,配列の2番目の要素以降に対して 1) の操作 
を繰り返す。と,2番目に小さい値が配列2番目に 
移動する。 

3) 以下,同様に処理範囲を狭めつつ,同様の操作 
を繰り返す。残り要素が1個になった!:きにはソー 
卜が完了している。 

以上のアルゴリズムの動きを追うと図2のように 
なる。小さな値がちようど泡のように配列先頭のほ 
うへ浮いていく様子から,このアルゴリズムはバブ 
ルソート ( bubblesort ) という名でも知られている 
(というより,こっちのほうがとおりがいい)。 
•プログラム例 

リスト3がバブルソートルーチンの一例だ0わけ 
あって,パスの方向を上の説明とは逆にしてある。 
つまり,“配列の後ろのほうから比較•交換を繰り 
返して,先頭に最小値を移動させる”代わりに,配 
列の前のほうから比較•交換を繰り返して,末尾に 
最大値を移動している。 

プログラムは単純な2重ループ構造をしている。 
24〜33行のループがパス1回分の処理で,このルー 
プにより,最大値が処理範囲の末尾に移動する。そ 
れを23〜37行のループで囲み,残り要素数が1個に 
なるまで繰り返している。ここでは,サブルーチン 
に渡された配列の要素数が最初から1個しかない場 
合に備え,21行の bra によりループ先頭ではなくル 
ープの終了判定部分に飛び込んでいる点に注意した 
い。また,20行で al (= 配列の末尾+1を指して 
いる)を要素1個分減らしているのは,32行や37行 
のアドレス比較を楽にするための細工だ。 

内側のループは,隣り合った要素の比較 (24 〜26 


行),交換 (29 〜30行)の2つの処理からなる。比 
較時には次のループに備えて,ポストインクリメン 
卜•アドレスレジスタ間接形式を使って,同時にポ 
インタを進めている。そのため,29〜30行の交換処 
理では,このずれの分をデイスプレースメントで補 
正している。 

ところで,ポインタを使ったメモリ操作時には, 

ポインタを増やすか減らすかによって,ポストイン 
クリメント•アドレスレジスタ間接形式とプリデク 
リメント•アドレスレジスタ間接形式を使い分ける 
わけだが,68000では前者のほうが若干速い。パス 
の方向を逆にしたのは,うま〈ポストインクリメン 
卜 •アドレス レジスタ間接形式が利用できるように 
したかったからにほかならない。 

•改良案 

バブルソートはその覚えやすい名前以上に,遅い 
アルゴリズムとして有名だ。少々改良したところで 
ほかのソートアルゴリズムにはまるでかなわない。 

しかし,あっさり見捨てるのはかわいそうなので, 

できる限りの高速化をしてやろう。 

リスト3では,処理範囲を狭めていき,残り要素 
数が1以下になった時点でソート完了と判断した。 

パス回数は常に配列の全要素数一1回だ。が,図2 
の例でもわかるように,実際にはその前にソートカ 5 ' 

U スト2 GENDAT . BAS 

10 int fp,i,dat(7999) 

20 str s 
30 s = time$ 

40 srand( afcoi(rxght$(8,2)+mid$(s,4 f 2)+left$(s,2)) mod 32768 ) 

50 for i=0 to 7999 

60 dat ( i) = rand( ) /* ランダム本 / 

70 /* dat( i ) = randt )/100 / 本ランダム(重技率 1 〇〇倍 )*/ 

80 /% dat ( i ) = rand( )/1000 / * ランダム(重 ) 〇〇〇倍)本 / 

90 /* dat{ i) = i /* ソートずみ本/ 

100 /本 dat(i) = 7999-i /* 綱ソートずみ </ 

110 next 

120 fp = fopen( "sort.inp", "o") 

130 fwrite( dat, 8000, fp ) 

140 fclose{ fp ) 


図 1 単純交換法における 

51 45 76 23 38 16 83 60 

51 45 76 23 38 16 60 83 

51 45 76 23 38 16 60 83 

51 45 76 23 16 38 60 83 

51 45 76 16 23 38 60 83 

51 45 16 76 23 38 60 83 

51 16 45 76 23 38 60 83 

16 51 45 76 23 38 60 83 


図ク 単純交喚ミ 土 

初期状態 51 45 76 23 38 16 83 60 (バブルソート) 

16151 45 76 23 38 60 83 

16 23151 45 76 38 60 83 

16 23 38151 45 76 60 83 

16 23 38 45151 60 76 83 

16 23 38 45 51 160 76 83 

16 23 38 45 51 60176 83 
ソート完了 16 23 38 45 51 60 76 183 


X 68000 マシン語プログラミング 71 












完了する場合もある。ソートが完了したかどうかを 
早めに検出できれば,無駄な比較をしなくてもすみ, 
実行速度の向上が望めそうに思える。具体的には, 
交換が行われたかどうかを表すフラグを設け,ルー 
プ先頭でこのフラグを偽に初期化しておき,以後, 
交換が行われたらフラグを真にする。ループの最後 
でフラグが偽のままであれば,1回の パスの あいだ 
に交換が行われなかったことがわかり,ソートずみ 
と判断できる。 

このとき,交換が行われたかどうかだけではなく, 
最後に交換が行われた位置も同時に記憶しておくと, 
さらに処理ステツプの節約が図れる可能性がある。 
たとえば, 

30 2010 40 50 601 

のようなデータ列に バブル ソートを適用する場合を 
考えよう(“丨”で処理範囲の上限を表す)。最初の 
パスで,前から順に比較•交換していくと,まず30 
と20,さらに30と10の位置が交換されて, 

2010 30 40 50 601 

t T 

になる(矢印は最後に交換が行われた位置を表して 
いる)。ふつうなら,ここで処理範囲の上限を要素 
1個分狭めるわけだが,明らかに,“最後に交換が 
行われた位置より右”はすでにソートずみであり, 


処理範囲から除外してもよい。そこで,上限を一気 
に“最後に交換した2要素のあいだ”に動かす。 

2010130 40 50 60 

t T 

そうすれば,2度目のパスでは残りの2要素だけを 
相手にすればよく,素直に, 

2010 30 40 50160 

と上限を移動した場合よりも上匕較回数を減らすこと 
ができる。 

リスト4に改良版を示す。いや,残念ながら改良 
ではなく,改悪になってしまった。なるたけの最適 
化を施したにも関わらず,平均的な性能はリスト3 
の版よりも多少落ちて いる。 アルゴリズムを改良し 
たことにより節約される比較時間よりも,新たにル 
ープ中に追加された命令の総実行時間のほうが長か 
ったのだ。比較にかかる時間がもっと長い場合(た 
とえば,対象が整数データではなく文字列のとき) 
には,比較を1回省略するごとに節約できる時間も 
大きくなるから,改良の効果が出てくるはずなのだ 
力 ? 。 

せっか〈だから,リスト4に施したマシン語流の 
最適化についても簡単に触れておく 0まず, a 0 レ 
ジスタを交換が行われたかどうかを表すフラグと, 
最後の交換位置を指すポインタの両方に兼用してい 


リスト 3 SORT1.S 


1 

本 

碑つき 32 ビットデータの配列を耕貞にゾートする 

23 

100 pi : 

movea. 1 

aO, a2 

本 a2= 注目している位 {R 

2 

本 

( ハブル、ノートあるいは単挑交換法) 

24 

1 oop2 : 

move. 1 

(ai!) + ,d0 

♦隣り合う 

3 

本 

H0O0 要素の、ノー トに 

2111 .33 秒 

25 


move. 1 

(a2),dl 

* 2 つの要素を 

4 

本 




26 


cmp.1 

dl,d0 

* 比較して 

5 


.xdef 

sort 


27 


ble 

next2 

* 乱れを湖へる 

6 

章 




28 





7 


.offset 

8 


29 


move.1 

dl,-4(a2) 

か乱れていたら 

8 

ATOP : 

.ds.] 

1 

*&array[0 J ( 配列の先頭アドレス) 

30 


move.1 

dO,(a2) 

»位置を交換する 

9 

ABOT : 

.ds. i 

1 

本 &array 【 N 丨(配列の谢冬アドレス +1> 

31 





10 

拿 




32 

next2 : 

cmpa.1 

a 1,a2 

♦上限に遂するまで 

11 


.text 



33 


bcs 

loop2 

* 繰り返す 

12 


.even 



34 





13 

本 




35 


subq.1 

#4 ,al 

を狭める 

14 

sort: 




36 

nextl : 

cmpa.I 

a 1,aO 

が配列先頭に遠するまて 

15 


1 ink 

a6,#() 


37 


bcs 

i oopl 

* 繰り返す 

16 


movem.1 

d0-dl/a»-a2 , - (sp) 

38 





17 





39 

done : 

movem.1 

(sp > + ,dO-d1/aO- 

-a 2 

18 


movem.1 

ATOP(a6) ,aO-al *aO = g 己列先頭アドレス 

40 


unlk 

a6 


19 




本 a 1= 配列末尾 +1 のアドレス 

41 


rts 



20 


subq.1 

#4 ,al 

♦31 =揪搜索のアドレス 

42 





21 


bra 

next 1 


43 


.end 




22 


U スト 4 S0RT2.S 


1 

本 

仔号つき 32 ビットテータの配列を昇 Ifl: ニソートする 

2 

t 

UC/ ルソ - 

- 卜:改良しようとして改悪した版) 

3 

A 

本 

8004) 要梁のソートに 

237 .74 秒 

5 


.xdef 

sort 


6 

本 




7 


.offset 

8 


8 

ATOP : 

.ds. 1 

1 

*&array|0J ( 配列の先頭アドレス) 

9 

ABOT : 

.ds. L 

1 

♦ fcarrayINJ ( 配列の最終アドレス +1> 

10 

11 

本 

.text 



12 


.even 



13 

♦ 




14 

sort : 




15 


]ink 

a6,#0 


16 


movem.L 

d0-d2/a0-a3,-(sp) 

17 





18 


movem.1 

ATOP(a6) ,aO-al 本 a0 = 歯己歹アドレス 

19 

20 


subq.1 

#4 ,al 

*al= 配^末尾 +1 のアドレス 
本 a1=*^# 素のアドレス 

21 





22 


cmpa •丄 

al,aO 

* 要素数が 1 以下なら 

23 


bcc 

done 

* ソート済み 

24 





25 


moveq.1 

#0,d2 

本 d2 = 0 


26 


addq.L 

#4, a 1 

本す ぐ 下の行のための逆補 £ 

27 

100 pi : 

lea. 1 

-4(a 1),a3 

* & 3 =舰の 

28 


movea.1 

a0, a2 

注目している位® 

29 


movea.1 

d2,al 

本 a 1=0 

30 





31 

loop2 : 

move.1 

(a2)+,d0 

* 隣 0 合う 

32 


move.1 

(a2),dl 

* 2 つの要素を 

33 


cmp.1 

dl,d» 

* 比較して 

34 


ble 

next2 

♦ JW 參の乱れをる 

35 





36 


move.1 

dl , - 4(a2) 

*鹏が乱れていたら 

37 


move.1 

d0,(a2) 

* 位置を交換する 

38 


movea.1 

a2, al 

本 a 1= 次のループの上限 +4 

39 





40 

next2 : 

cmpa.1 
bcs 

a3,a2 

*±1®に逨するまで 

41 


loop2 

* 繰り返す 

42 





43 

next 1: 

cmpa.1 

d2,al 

* 交換が行われなくなるまで 

44 


bne 

100 pi 

* 繰り返す 

45 





46 

done : 

movem.1 

(sp)+,d0-d2/a0- 

-a3 

47 


unlk 

a6 


48 


rts 



49 





50 


.end 




72 Oh ! X 1991.2. 







る。 aO が0のときは“交換がまだ行われていない” 
ことを表す。交換が行われたら,その位置を aO に 
入れ,そのことによって aO は非0となり,“交換が 
行われたこと”を表すようになる。この周辺では, 
d 2 レジスタにあらかじめ0を入れておき, 


suba.l 

al , al 

の代わりに, 


movea.l 

d 2 ,al 

を, 


cmpa.l 

#0 ,al 

の代わりに, 


cmpa.l 

d 2 ,al 


を使うといった,小さな細工もしてある。 

また,38行に注目してもらいたい。よく見てもら 
うと, al に格納されるアドレスは要素1個のバイ 
卜数だけ(ここでは 4) 予定よりずれている。この 
分の補正は,外側の ループの 先頭27行の, 
lea.l -4( al ), a 3 

で行っている。それにともない,ループに入る直前 
に, 

addq.l # 4, al 

を入れて逆補正していたりもする。わざわざこんな 
ことをしているのは次の理由による。 

アルゴリズムどおりの動作をさせるためには,27 
行か38行のどちらかを, 

lea.l -4( aX),aX 

に,逆側を, 

movea.l aX , aX 

にする必要がある。ここで,前者は後者よりも多少 
遅い。となれば,“頻繁に実行されるほう”により 
速い命令を使うべきだ。27行と38行の実行回数を考 
えると,27行は パス 1回ごとに1度実行され,38行 
は パスの 中で交換が発生するたびに1度実行される。 


多くの場合, 

パス回数く<交換回数 

だから,交換時の処理時間を短縮するほうが速度的 
に有利,となる。つじつま合わせに追加された26行 
は, ループの 外側でただ1回実行されるだけだから, 
大勢には影響しない。 

#シェーカーソート 

改悪になってしまったのが悔しいので,少しムキ 
になって,さらにアルゴリズムの改良に取り組む。 

6010 20 30 40 50 

というデータ列をリスト4の改悪版バブルソートル 
ーチンでソートすることを考えよう0最初のパスで 
5回の交換が起こり,最大値60は配列末尾に移動し 
て,1パスでソートが完了する。正確には,ソート 
が完了したかどうか知るためにはもう一度走査する 
必要があるが,それでも2パスだ。では, 

20 30 40 50 6010 

というデータ列ではどうだろう。パス1回ごとに交 
換がただ1度行われ,末尾に置かれた最小値の10は 
順々に前に送られていく。都合5パスだ。交換回数 
は上の例と変わらないが,比較回数はずっと多くな 
ってしまう。 

では,パス方向を逆にして(配列の後ろのほうか 
ら比較•交換を繰り返して,先頭に最小値を移動さ 
せる),同じデータ列をソートしてみる。今度は状 
況は逆転し, 

20 30 40 50 6010 

は2パスでソートできるが, 

6010 20 30 40 50 

をソートするのに5回のパスが必要になる。バブル 
ソートにはアルゴリズム上の偏りがあり,パスの方 
向によって,得意なデータと不得手なデータがはっ 
きり分かれるわけだ。 


リスト5 S 0 RT 3 .S 


l 

本 

符号つき 32 ビットデータの配列を昇順にツートする 

2 

本 

( シエーカ - 

- ソート) 


3 

4 

本 

8000 要素のソートに 179.26^' 


5 


.xdef 

sort. 


6 

t 




7 


.offset 

8 


8 

ATOP : 

t d s • J. 

1 *&.array[ 0 J ( 配列の先姐アドレス〉 

9 

ABOT : 

.ds. 1 

1 本 &array 【 N] ( 配列纖冬アドレス + 1 ) 

10 

拿 




11 


.text 



\2 


.even 



13 

本 




M 

sort : 




15 


link 

a 6 9 #0 


16 


movem .1 

d0-d2/a0-a3•-(sp) 

17 





18 


movem .1 

ATOP(a 6 ),aO-a L 

化 0 = 配列_アドレス 

19 




*& 1 = 配列末尾 + 1 のアドレス 

20 


subq .1 

#4 ,al 

♦al = 最終要衆のアドレス 

21 





22 


cmpa.l 

al,aO 

♦ 要素数が 1 以下なら 

23 


bcc 

done 

* 、ノー ト済み 

24 





25 


tnoveq .1 

# 0 ,d 2 

*d 2 = 0 

26 





27 

loopl : 

movea.l 

a0 , a3 

本 &3 =麵の 

28 


movea .1 

a 1 ,a 2 

= 注目している位 * 

29 


movea.l 

d 2 f a 0 

本 a 0 = 0 

30 





31 

loop2 : 

move.1 

(a2),d0 

合う 

32 


move.1 

-(a2),dl 

* 2 つの要索を 

33 


cmp.1 

dl,d0 

* 比較して 

34 


bge 

next2 

* 順序の乱れを观^る 

35 






36 


move . 1 

dl, 4(a 2 ) 

♦順序が乱れていたら 

37 


move . 1 

d 0 ,(a 2 ) 

* 位!!を交換する 

38 

39 


movea . 1 

a 2 ,a 0 

本 aO = 次の 1 レ _ フ'のド限 
* ( 本当はもう 1 要素分狭められる) 

4 0 

next 2 : 

cmpa.l 

a2,a3 

* 下限に违するまて 
* 繰り返す 

41 

42 


bcs 

10 op 2 

43 


cmpa.l 

d 2 ,a 0 

* 交換が行われなくなるまで 

44 

45 


beq 

done 

* 繰り返す 

46 


movea .1 

al,a3 


47 


movea.l 

aO, a 2 

= 目している位彼 

48 

49 


movea.l 

d 2 ,al 

*a 1=0 

50 

loop3 : 

move .1 

(a 2 ) + ,d() 

* 除り合う 

51 


move .1 

(a 2 ),dl 

* 2 つの要素を 

52 


cmp .1 

dl,d 0 

* 比較して 

53 

54 


ble 

next3 

* 傾序の乱れを湖べる 

55 


move .1 

dl , - 4(a2) 

乱れていたら 

56 


move .1 

dl), (a 2 ) 

* 位*を交校する 

57 

58 


movea .1 

a 2 ,al 

*al = 次のルーフの上限 
* ( 本当はもう 1 要素分狭められる) 

59 

60 
61 

next3 : 

cmpn.I 
bcs 

a3,a^ 

1oop!J 

* 上限に遠するまて 
* 繰り返す 

62 

next 1 : 

cmpa.l 

d 2 ,al 

♦交換か行われなくなるまで 

63 

64 


bne 

1oopl 

* 错り返す 

65 

66 

67 

68 
69 

done : 

movem .1 
uni k 
rts 

.end 

( sp ) + ,d 0 - 
a 6 

d2/n()-a3 


X68000 マシン語プログラミング 73 





■J スト 6 SORT4.S 


符号つき 32 ビ • ゾトデータの fid 列を猝晚こ•ノートする 
( 中糊択法) 

8000 要素の,ノートに U1 •⑼杪 


ATOP : 
ABOT : 


.xdef sort 

.offset H 
.ds.1 1 

.ds.1 1 

.text 
.even 


*&array l») (gii 列の先頭アドレス) 
*&array[NJ ( 配列の最終アドレス +1 ) 


link a6 ,#0 

movem. 1 dO/aO-a3 , - (sp) 


movem.1 ATOP(a6),aO- 
subq.1 #4,a 1 


*a0 = 配列先頗アドレス 
本 al= 配列末 jg+1 のアドレス 
*al= 嵌^要素のアドレス 



bra 

loop! 

swap : 

move.1 
move•1 

(aO),(a3) 
dO , (aO) + 

100 pi : 

cmpa.1 

al,aO 


bcc 

done 


movea.i 

l al,a2 

select : 

move.1 
movea.J 

(a2),d0 

L a2 , a3 

loop2 : 

cmpa•1 

a2, aO 


bcc 

swap 


cmp •1 

-U2) ,d0 


ble 

loop2 


bra 

select 


♦みつけた嵌小®と 
* 先要索を交換する 
*Sd 列の最後に违した? 

* そうならソート完了 
臟位 B 

*d0 = 仮の最小油 • 

*a3 = d0;Hg 納されていた位面 
♦配列の先頭に违した? 

* d0 に入っているのか最小滷 
* 仮の A 小値より小さい值を 
♦ 探し続ける 

* みつかった6仮の<4小侦にする 


done : movem. 1 (sp) +, d0/a0-a3 

un Lk a6 
rts 

.end 


そこで, 1 回のパスごとにパス方向を変えて,偏 
りをならせば,平均的な性能も向上するのではない 
かという発想が生まれてくる。このバブルソートの 
変形はシェーカーソート (shaker sort ) というこ 
れまた冗談のような名前で知られている。リスト4 
を ベースに 作り直したプログラムをリスト5に示そ 
う。今度はちゃんと改良になった。 

プログラムは,パスの方向を変えた2つのループ 
を直列に並べてあるというだけの代物で,見るべき 
ところはなにもない。すでにバブルソートに対して 
は十分な礼儀をつくしたことでもあるし,そろそろ 
飽きてもきたので,下限や上限を更新する処理は若 
干手抜きスタイルになっていたりもする0リスト4 
同様,38行や57行でアドレスレジスタに入れている 
アドレスは望む値より4バイトずれているが,この 
補正をどこでもやっていない。これにより,常に下 
限や上限が要素1個分ずれており,パス1回ごとに 
余計な比較が1度ずつ行われる。気になる人は改良 
してもらいたい。 




籲アルゴリズム 

単純選択法も,バブルソート同様,パス1回ごと 
に最小値を1つ先頭に移動することで,配列の端か 
ら順にソートしていく方法だ。ただ,最小値を移動 
するとき,ほかの要素をずらす代わりに,単純に, 
先頭要素と最小値の位置を交換する。 

1) 最初は配列全体を検索範囲とし,検索範囲中か 
ら最小値を探す。見つけた最小値は検索範囲の先頭 
要素と位置を交換する。ここまでが1回分のパス。 

2) 先頭要素は確定した。検索範囲の下限をずらし, 
第2要素以降からふたたび最小値を探して,検索範 


図3 単純選択法 


初期状態 


51 45 76 23 38 
16145 76 23 38 


ソート完了 


83 
83 
83 
83 
83 

23 38 45 51176 83 
23 38 45 51 60183 


23176 45 38 
23 38145 76 
23 38 45 176 


16 

51 

51 

51 

51 


60 

60 

60 

60 

60 

60 

76 


囲の先頭と交換する。 

3) 以下,同様に検索範囲を狭めつつ,最小値を探 
しては先頭と交換する。残り要素が1個になったと 
きにはソートが完了している。 

図3に動作の様子を示す。 

•プログラム例 

最小値を探す処理は,検索範囲の端の要素を仮の 
最小値としてレジスタに保管しておき,以降の要素 
と順次比較して,“仮の最小値”より小さい値を見 
つけたらレジスタに拾い上げる(仮の最小値とす 
る),という操作を繰り返すことで行える。 

リスト6が単純選択法のプロダラム例だ。いくつ 
か作ったなかから比較的綺麗な版を選んでみた(そ 
の割にはループ構造がひねている)。 

外側のループは25行から始まる。残り要素数が1 
以下かどうか(ソートが完了したかどう力、)を調べ 
てから,28〜29行で仮の最小値を dO に,その位置 
を a 3 に入れておき,30〜33行の内側のループで順 
次比較を繰り返す。検索方向は検索範囲の後ろから 
前方向に行っている(逆にした版はどうも収まりが 
悪かった)。ひととおり比較し終わった時点で d 0 に 
真の最小値, a 3 にその格納位置が残っているから, 
23〜24行で,検索範囲の先頭要素と交換する。 


|単娜 


23 38 45 51 60 76183 


単純揷入法は,配列を“いちおう順序が整った部 
分”と“そうでない部分”に分けて,未整理の部分 
から1つ要素を取り出しては整理ずみの部分の適当 
な位置に挿入することでソートしていく。ある意味 
で,バブルソートや単純選択法とは逆の発想に基づ 
くアルゴリズムといえる 0 
#ァルゴリズム 

1) 最初は配列の先頭1要素だけが整理ずみ,残り 
が未整理と考える(要素が1個しかない配列は常に 
ソートずみである)。 

2) 未整理部分の先頭,つまりは,配列の2番目の 
要素を抜き出し,これを整理ずみの部分の適当な位 
置に揷入する。ここまでが1パス。 

3) 2) の時点で整理ずみの部分は要素1個分伸び, 
未整理部分は1個分削られた。ふたたび,未整理部 


12345878901234567890 

22222222233333333334 


74 Oh ! X 1991.2. 







分の先頭 = 配列の 3 番目の要素を抜き出し,整理ず 
みの部分の適当な位置に挿入する。 

4) パス1回ごとに未整理の要素が1個ずつ減って 
いく。それが0になったらソートは完了する。 

以上の様子を図4に示す。 

_プログラム例 

挿入位置を探す処理は,単純に,整理ずみの範囲 
の端から順に比較を繰り返すことで行える。このと 
き,整理ずみの範囲の末尾から先頭方向に比較して 
いくことにすれば,挿入しようとするデータよりも 
大きな値をどんどん後ろにずらしていくことで,挿 
入位置の検索とデータの移動を並行して進めること 
ができる(図5)。 

では,リスト7にプログラムの実例を示そう。例 
によってプリデクリメント•アドレスレジスタ間接 
形式を嫌う方針により,パスの方向を逆にして,整 
理ずみの部分は配列先頭ではなく,配列の末尾にお 
くようにしてある。 a 2 が整理部分と未整理部分の 
境界を示し, a 2 以降が整理ずみだ。挿入位置はそ 
の a 2 から後ろに向かって探してい〈形になる。ほ 
かの部分に若千しわよせがいっているが,内側のル 
ープ中もっとも頻繁に実行される27行にポストイン 
クリメント•アドレスレジスタ間接形式を適用する 
ためならなんでもありだ。 

引数の取り込み後,20行でまず整理ずみ部分と未 
整理部分の境界 a 2 を初期化する。最初は配列の末 
尾の要素ただ1個が整理ずみの領域に入り,残りが 
未整理となる。 

22行から外側のループが始まる。ここでは,挿入 
位置を探すボインタとして使う a 3 を初期化して(初 
期値は整理ずみ部分の先頭 = a 2) から,23行で境 
界をずらすと同時に,新規に揷入するデータを d 0 
に取り込む。その後,24行で境界が配列の先頭を越 
えたかどうかを調べ,越えたとなればソート完了と 
判断してループを抜ける。配列先頭との アドレス 比 
較の前にデータを取り込んでしまって いるのは 反 
則 5 > なのだが,大目に見てもらいたい。 

以下,27行からが内側のループ。ここでは a 3 を 
順次進めつつ,挿入すべきデータとの比較を繰り返 
し,挿入位置を探している c 挿入位置が見つかるま 
では31行で揷入場所を作るためにデータをずらし, 
挿入位置が見つかったら38行に飛び,適切な位置に 
データを収める。どちらの場合も,27行の比較の時 
点でポインタをボストインクリメントしている関係 
で, a 3 は挿入位置を派手に通り過ぎている点に注 
意してもらいたい。 

図4単純挿入法 

初期状態 51145 76 23 38 16 83 60 

45 51 |76 23 38 16 83 60 

45 51 76123 38 16 83 60 

23 45 51 76138 16 83 60 

23 38 45 51 761 16 83 60 
16 23 38 45 51 76183 60 
16 23 38 45 51 76 83丨60 
ソート完了 16 23 38 45 51 60 76 831 


ところで,挿入データがどの整理ずみデータより 
も大きかったときには,挿入位置が見つからないま 
ま配列の端に達することになる。32行のアドレス比 
較がこのためのチェックであり,このチェックに引 
っ掛かった場合は速やかにループを抜けて35行で配 
列の最後尾にデータを格納する。 

•改良案 

リスト7では内側のループの脱出条件に次の2通 
り力 f ある。 

1) 挿入位置が見つかった(揷入する値以上のデー 
夕が見つかつた)。 


5) 124〜25行のチヱックに引っ 
掛かってループを抜ける直前 
には,すでに23行の時点で a 2 
は配列の領域外を指している。 
読むだけで書き換えるわけで 
はないとはいえ,引数として 
渡された配列の外にアクセス 
するのは不作法だ。 


図5単純挿入法における挿入位置の検索 


この状態から60の挿入位置を探す 

1 

60 < 83だから揷入位置はもっと前 

丄 

60 < 76だから揷入位置はもっと前 

i 

60 >51だから挿入位置はもっと後 

1 

ということはここ 


16 23 38 45 51 76 83 60 

16 23 38 45 51 76 83 □ 

60 

16 23 38 45 51 76 □ 83 

60 

16 23 38 45 51 □ 76 83 

60 

16 23 38 45 51 60 76 83 


表1ソート時間(単位:秒) 



n =500 

n =1000 

n =2000 

n =4000 

n =8000 

バブル ソー ト 

A 

0.90 

3.60 

14.46 

57.76 

231.33 


B 

0.89 

3.59 

14.45 

57.84 

231.05 


C 

0.89 

3.60 

14.39 

57.34 

229.81 


D 

0.73 

2.94 

11.77 

47.10 

188.41 


E 

1.07 

4.28 

17.15 

68.64 

274.57 


F 

0.73 

2.94 

11.77 

47.10 

188.41 

バブル ソー ト 

A 

0.92 

3.70 

14.87 

59.45 

237.74 

(改良したつもり 

B 

0.92 

3.65 

14.84 

59.47 

237.81 

だった版) 

C 

0.91 

3.67 

14.75 

58.84 

236.18 


D 

0.00 

0.00 

0.01 

0.02 

0.04 


E 

1.12 

4.50 

18.00 

72.03 

288.12 


F 

0.00 

0.00 

0.01 

0.02 

0.04 

シエ ーカー ソ ー ト 

A 

0.70 

2.78 

11.20 

44.64 

179.26 


B 

0.68 

2.77 

11.24 

44.88 

178.18 


C 

0.69 

2.81 

1 1.05 

43.56 

175.44 


D 

0,00 

0.00 

0.01 

0.02 

0.04 


E 

1.14 

4.56 

18.24 

72.92 

291.60 


F 

0.00 

0.00 

0.01 

0.02 

0.04 

単純選択法 

A 

0.52 

2.07 

8.23 

32.82 

131.08 


B 

0.52 

2.06 

8.22 

32.80 

130.98 


C 

0.51 

2.06 

8.21 

32.76 

130.91 


D 

0.83 

3.34 

13.35 

53.41 

213.59 


E 

0.67 

2.69 

10.77 

43.06 

172.21 


F 

0.51 

2.05 

8.18 

32.72 

130.84 

単純挿入法 

A 

0.38 

1.52 

6.15 

24.37 

98.00 


B 

0.37 

1.50 

6.13 

24.54 

97.37 


C 

0.37 

1.51 

5.98 

23.40 

94.57 


D 

0.00 

0.00 

0.01 

0.03 

0.07 


E 

0.75 

3.03 

12.13 

48.54 

194.16 


F 

0.00 

0.00 

0.01 

0.03 

0.07 

単純挿入法 

A 

0.34 

1.36 

5.52 

21.88 

88.00 

(番人あり) 

B 

0.33 

1.34 

5.50 

22.04 

87.43 


C 

0.33 

1.35 

5.37 

21.01 

84.91 


D 

0.00 

0.00 

0.01 

0.03 

0.06 


E 

0.68 

2.72 

10.90 

43.60 

174.36 


F 

0.00 

0.00 

0.01 

0.03 

0.06 


A :ランダム 


B :ランダム(同ーデータが重複している確率が A の100倍) 
C :ランダム(同1000倍) 

D :ソートずみ 
E :逆順にソートずみ 
F :全要素が0 


X 68000 マシン語プログラミング 75 
















ATOP: 

ABOT : 


仔号つき :} 2 ビットデータの配 ^ を昇順に、ノートする 
( 職挿入法) 

8000 要素のソートに 98.00 秒 


.xdef sort 

•offset 8 
.ds.l 1 
.ds.l 1 

.text 
.even 


*&arraylG] ( 配列の先頭アドレス) 
*&arraylN] ( 配列の最終アドレス +1 〉 


link a6,#0 

movem.1 dO-dl/a0-a3 , - (sp) 

movem. l ATOP(a6) ,a0-al *a0 二 g 故 lj5feg 頁アドレス 

=^1=配^』末尾+1のァドレス 


100 pi : 


-4(al),a2 


movea.1 a2,a3 
move.1-(a2),d0 


本 a 2 = 整理済み部分と未整理部分の ■ 

本 a3 = 挿入位置を指すポインタ 
»d0 = これから挿入するデータ 


リスト日 SORTB. S 



cmpa. 1 
bcs 

a0 , a2 
done 

♦ 未整理部分はもうない? 

* そうなら終了 

loop2 : 

move.1 
cmp.1 
ble 

(a3)+,dl 
dl,d0 
found 

* ここは 
本挿入位置? 

* そうな 6 ノト-ブを抜ける 


move.1 
cmpa.1 
bcs 

dl , - 8{a3) 
a 1,a3 

10 op2 

本のちの挿入時に備えて要素をずらす 
* 配列の端に遠するまで 
* 繰り返す 

insert : 

move.1 
bra 

d0,-(a3) 
100 pi 

* 端につけ足す 

found : 

move•1 
bra 

d0,-8{a3) 
100 pi 

ホ挿入する 

done : 

movem.1 

(sp)+,d0- 

dl/a0-a3 


unlk a6 
rts 


.end 


ATOP : 
ABOT : 


符号つき: 32 ビットデータの配列を昇順にソートする 
( 職挿入法:番人を S く版〉 

8000 要素のソートに 88.00 秒 


.xdef so 

.offset 8 
.ds.l 1 
.ds.l 1 


*&array[0] ( 配列の先頭アドレス) 
*&array[N] ( 配列の最終アドレス +1) 


10 

本 




11 


.text 



12 


.even 



13 

本 




14 

sort : 




15 


1 ink 

a6, #0 


16 


movem.1 

d0~dl/a0-a2,-(sp) 

17 





18 


movem.1 

AT0P(a6),a0-al 

章 a0 = | 

19 




♦ al=| 

20 


move.1 

#$7fffffff,(al) 

* 番人 

21 


subq•1 

#4 , a 1 

*al=| 

22 


bra 

next 1 



23 

24 

100 pi: 
10 op2: 

move.1 

(a2)+,dl 

» ここは 

25 


cmp.1 

dl,d0 

* 揷人位!!? 

26 


ble 

found 

* そうならループを抜ける 

27 

28 


move.1 

dl , - 8(a2) 

* のちの捕入時に備えて 

29 

30 


bra 

loop2 

* 要索をずらしていく 
♦挿入位置が見つかるまで 

31 

32 

found : 

move.1 

d0,-8(a2) 

* 繰り返す 
♦揷入する 

33 

34 

next 1 : 

movea.1 

a 1,a2 

*a2 = 揷入位置を指すポインタ 

35 


move,1 

-(al) , d0 

*d0 = これから揷人するデータ 

36 


cmpa.1 

aO, al 

* 未整理部分がなくなるまで 

37 


bcc 

100 pi 

* 繰り返す 

38 

39 

done : 

movem.l 

(sp) + , d0-d1/aO- 

-a2 

40 

41 

42 

43 


unlk 

rts 

.end 

a6 



2) 挿入位置が見つからないまま配列の端に達した。 

ループ1回につき,条件判断が2つあるのは実行 
速度の点でも,プログラムの簡潔さという点でもあ 
まりよいことではない。このような場合には,“番 
人”を置いて,ループの脱出条件をひとつにするこ 
とができないかどうかを考えてみるべきだ。 

番人 ( sentinel :番兵,見張り,標識などとも訳 
される)とは,アルゴリズムの導入上,仮に追加す 
る終端データのことをいう。いま,ソートする配列 
のすぐ後ろに,配列中の最大値以上の値(それが番 
人)を置いてみる。たったそれだけのことで,上の 
2) のチェックは不要となる。挿入位置の検索が配列 
の端に達したときには,番人との比較が行われるこ 
とになり,必ず 1) のチェックに引っ掛かるからだ。 

リスト7の21行のあたりに番人をセットする1行 
を付け加え,32〜36行をばっさり削って, 
bra 10 op 2 

に置き換えたうえで,ループ構造やレジスタの使い 
方を多少最適化したらリスト8のようになった。 

20行で番人をセットしている。いま扱うデータは 
符号つき32ビット数だから,その最大値である 7 FF 
FFFFFh を番人に使う0ここで,サブルーチンに 
渡された配列の直後には番人を収めるだけの空きが 
あることを仮定している。このサブルーチンを呼び 


出すときには,呼び出し側がその分のメモリを確保 
しておかなければならない。その意味で,番人を利 
用する アル ゴリ ズムは メイ ンルーチンに 余計な負担 
をかけるといえる。安全を期すなら,リスト1のテ 
ストプログラムも, 154 行を, 

sdata : . ds.l MAXDATA +1 
に修正してアセンブルし直したほうがよいだろう 
(直後は未使用のスタック領域だから,修正しなく 
ても実害はないが)。 

ホ 

とりあえず,今回作った各プログラムに対して, 
いろいろな種類•大きさのデータを与えてみたとき 
の実行時間を表1に示しておく。表中 A 〜 F はテス 
トデータの傾向で, A 〜 E がリスト2の70〜100行 
にそれぞれ対応する。 

どのアルゴリズムも,要素数 ( n とおく)を倍に 
すると,実行時間が4倍になるのがわかると思う。 
実行時間は n 2 に比例し, n が増えると放物線を描 
いて急激に上昇してい〈。後編では,この上昇カー 
ブがずっと緩やかなソートアルゴリズム,シェルソ 
一卜,ヒープソート,クイックソートが登場する。 
今月紹介した単純なアルゴリズムとの性能の差は歴 
然としていて,クイックソートに至っては,8000個 
のデータのソートに1秒とかからない。では。 


U スト 7 SORT5.S 


4567890123456789012345 

2222223333333333444444 


76 Oh! X 1991.2. 







も多いかもしれませんね。そのころ中学生 
だった私がこうして原稿を書いているので 
すから,時がたつのは早いものです。 

プログラムは Music BASIC 用です。短 
いし,使い回しがきく行もありそうですか 
ら,入力もかなり楽でしよう。曲を聴いて 
いると,おばさんが等身大のスプーンと 
躍っているシーンが思い出されます。明る 
〈て,とっても楽しい曲ですよ。小節によっ 
てはパートがかなり空いているようなので, 
いろいろと遊んでみるのもいいかもしれま 
せんね。 

さて,新年早々にやっためぞん一刻の反 
響で「 XI でもなんかやれ〜」という,な 
かなか無責任なリクエストが届いています。 
全体的に見ると XI のほうがジャンルら豊 
富だし,投稿者の層も多彩です。「やれば 
できる」ということを知っているユーザー 
が多い事もあるのでしようが,「やらない 
とアブナイ」という意識もあるのでしよう。 
やはり自分で作って投稿していただく!:, 
XI 用のプログラムも増えて嬉しかったり 
するんです(なんといっても私も XI ユー 
ザー)。加藤君も XI の投稿の少なさを嘆い 
て投稿してくれました。皆さんもがんばっ 
てください。 

それでは来月もまたこの雑誌のこのペー 
ジでお会いしましよう。 ( S . K .) 


Y _« U (?), 録:刺政 

お待たせしました。久しぶりに登場の立 
川君です。良い子のための FM 音源講座や Y 
コマンド でけ)もうお馴染みですよね。 
今回の作品では彼らしい Y コマンドの 使い 
方がみられませんが,曲のデキは折り紙付 
きです。 

さて,その曲はエニックスのアドベンチ 
ヤーゲーム , Misty Blue のオープニング 
テーマです。このゲームは PC -8801 用で 
すので,本紙の読者には馴染みが薄いタイ 
トルかもしれません。曲の雰囲気は,ひと昔 
前に流行っていた , “SHOW ME ” みたい 
な感じです。その曲をタイトルとしていた 
“男女7人秋物語”が恋愛ドラマだったこ 
とも考えると , Misty Blue はここいらへ 
んを意識しているのかもしれませんね。 

この作品ではパンポットが命ともいえそ 



Misty Blue 


10 

20 

30 

40 

50 

60 

70 


うで,ステレオ感がとてもうまく表現され 
ています。ヘッドホンか,左右がきっちり 
と離れて いる スピーカーの定位置で聴きま 
しょう。なお, OPMA 用に調整されてあ 
るようですので,ボスコニアンのサンプリ 
ングデータをお持ちの人はそちらで聴いて 
ください。 

ワンポイント•テクニック として, ファ 
ンクシヨン キーの19,20に テンポを 指定す 
る コマンドを 入れているようですね。試し 
に 演奏中に シフ トキーと F 9 キーを押して 
みてください。早送りになったでしょう。 
おそらく,制作中にひんぱんに使うのでし 
ょうが,確かに便利です。こういった ファ 
ンクシヨン キーの有効利用は大いに結構で 
すが, F 1 〜 F 10 は皆さんそれぞれがある程 
度設定し直して使っていることでしょう。 
もし, プログラムに 残すときは F 11 〜 F 20 
とか普段あまり使わないようなところに入 
れておくほうがよいようですね。 

( 今日はおばさんのバースディ| 

XI 用には NHK の アニメ 「スプーンおば 
さん j より,「リンゴの森の子描たち」を 
お送りしましよう。これはこの番組のエン 
ディングテーマだったものです。8年前と 
いうかなり昔のモノですので,知らない人 

リスト1 Misty Blue 


とにもかくにも 

Misty B 1 u e j 

なのであります,はにや • 


80 

/« 

P 

r o 

8 r 

a m e 

d 

by 

立川正之 

in 1990/12/9 

90 

/* 












100 

dim 

char 

v(4,10)s 

{ 








lie 

/« 

AF 

OM 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAN 


120 


58, 

15, 

0. 

0, 

e . 

0. 

〇 » 

0. 

0, 

3, 

0. 

130 

ハ 

AR 

DR 

SR 

RR 

SL 

OL 

KS 

ML 

DTI 

DT2 

AME 

140 


31, 

0, 

0. 

0, 

0, 

33, 

0, 

3, 

0, 

0 , 

0» 

150 


31, 

0, 

0, 

e, 

0, 

55, 

0, 

10, 

0 , 

1, 

e , 

160 


31, 

0. 

0, 

0, 

0. 

33, 

0, 

1 , 

0, 

0, 

0, 

170 


31, 

16, 

0, 

4, 







0) 

180 

m_vset(71 

,v) 










190 

ハ 












200 

v=l 












210 

/• 

AF 

OM 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAS 


220 


60 t 

15, 

0, 

0, 

0, 

0. 

〇 , 

0, 

0, 

3, 

0, 

230 

ハ 

AR 

DR 

SR 

RR 

SL 

OL 

KS 

ML 

DTI 

DT2 

AME 

240 


31 t 

10, 

0 , 










250 31,10, 

260 31, 20, 

270 31,10, 

280 m vset(72•v) 
290 ハ 
300 vrl 

310 ハ AF OM 

320 8,15, 

330 /• AR DR 

340 5, 0, 

350 6, 0, 

360 7, 0, 

370 28, 0, 

380 m vseti73,v) 
.390 ハ 
400 v={ 

410 /* AF OM 

420 60,15, 

430 /* AR DR 

440 31, e, 

450 15,15, 

460 31, 0, 

470 15,15, 

480 nj_vset ( 74 , v) 


in • 91 


i Masayuki 


: /J/ilAY L • I • V • E ■ 

X 68000 用 

Misty 日心よりオーフーノクフ"ーマ曲立川正之 
Xl / tu 「 bo 用 

スプ-ンおばさんより リンゴの森の子猫たち ■ 


正月気分もすっかり抜けて,まだあわだだ 
しい日常が戻ってきましだが,皆さんいか 
がお過ごしでしよろか。さて,今月はエニ 
ックスのゲームミュージック1本と,アニ 
メ「スブーンおばさん」のエンディングテ 
ーマをお届けします。こだつでみかんでも 
食べながらのんびりと打ち込んで,楽しん 
で < ださい。 



日本音楽著作権協会(出)許諾第9072264 -00 1号 


0 h!X UVE in *91 77 

















490 
500 
510 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
630 
640 
650 
660 
670 
680 
690 
700 
710 
720 
730 
7^10 
750 
760 
770 
780 
790 
800 
810 
820 
830 
8-10 
850 
860 
870 
880 
890 
900 
910 
920 
930 
9-10 
950 
960 
970 
980 
990 
1000 
ieie 
1020 
1030 
1040 
1050 
1060 
1070 
1080 
1090 
1100 
1110 
1120 
1130 
1140 
1150 
1160 
1170 
1180 
1190 
1200 
1210 
1220 
1230 
1240 
1250 
1260 
1270 
1280 
1290 
1300 
1310 
1320 
1330 
1340 
1350 
1360 
1370 
1380 
1390 
1400 
1410 
1420 
1430 
1440 
14 50 
1460 
1470 
1480 
1490 
1500 
1510 
1520 
1530 
1540 
1550 
1560 
1570 
1580 
1590 


1600 v={ 


1610 

/* 

AF 

0M 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAN 


1620 


44, 

15, 

0, 

0, 

0, 

0, 

0, 

0, 

0, 

3, 

0, 

1630 

い 

AR 

DR 

SB 

RR 

SL 

0L 

KS 

ML 

DTI 

DT2 

AME 

1640 


31, 

0, 

0, 

0, 

0, 

22, 

0, 

8, 

3, 

0, 

0, 

1650 


18, 

0, 

0, 

6, 

0, 

2, 

0, 

8, 

3, 

0, 

0, 

1660 


31, 

0, 

0, 

0. 

0, 

22, 

0, 

8, 

7, 

0, 

0 , 

1670 


31, 

0, 

0, 

6. 

0, 

2, 

0, 

8, 

7, 

0, 

0J 

1680 

m 

vset(86 , v) 










1690 

/* 












1700 

v = 

( 











1710 

/* 

AF 

0M 

w? 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAN 


1720 


58, 

15, 

0, 

0, 

0, 

0, 

0, 

0, 

0, 

3, 

0, 

1730 

/* 

AR 

DR 

SR 

RR 

SL 

0L 

KS 

ML 

DTI 

DT2 

AME 

1740 


16 f 

0, 

0, 

7, 

0, 

36, 

0, 

1, 

7, 

0, 

e, 

1750 


16 f 

0, 

0, 

7, 

0, 

46, 

0, 

8, 

3, 

0, 

o, 

1760 


16, 

0, 

0, 

7, 

Q, 

46, 

0, 

1, 

7, 

0, 

0, 

1770 


16 , 

6, 

0, 

7, 

1, 

0, 

0, 

2, 

3, 

0, 

01 

1780 

m vset{ 

87,v) 










1790 

/« 












1800 

V- 

( 











1810 

ハ 

AF 

0M 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAM 


1820 


60, 

15 , 

0, 

0, 

0, 

0, 

0, 

c, 

0, 

3, 

o, 

1830 

/* 

AR 

DR 

SR 

RR 

SL 

0L 

KS 

ML 

DTI 

DT2 

AME 

1840 


31, 

0, 

0, 

13, 

0, 

26 ( 

0, 

4, 

7, 

0, 

0, 

1850 


14, 

15 , 

0, 

13, 

2, 

2, 

0, 

2, 

7, 

0, 

a, 

1860 


31, 

0, 

0, 

13, 

0, 

31, 

0, 

8, 

3, 

0, 

0, 

1870 


14, 

15, 

0, 

13, 

2, 

10, 

0, 

4, 

3. 

0, 

0) 

1880 

m 

vset(83,v) 










1890 

/* 












1900 

V: 

( 











1910 

ハ 

AF 

OM 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAN 


1920 


60, 

15, 

0, 

0, 

0. 

G, 

0, 

0, 

0, 

3, 

0, 

1930 

/« 

AR 

DR 

SR 

RR 

SL 

0L 

KS 

ML 

DTI 

DT2 

AME 

1940 


31 , 

0, 

0, 

0, 

0, 

26, 

0, 

8, 

7, 

0, 

0, 

1950 


21 , 

16, 

0, 

T, 

5, 

0, 

0, 

4, 

7, 

0. 

0, 

1960 


31, 

0, 

0, 

0, 

0, 

31, 

0, 

4, 

3, 

0, 

0, 

1970 


21 , 

16, 

0, 

7, 

5, 

8, 

0, 

2, 

3, 

0, 

0} 

1980 

m 

vset { 

89 ,v) 










1990 

/* 












2000 

V- 

( 











2010 

/* 

AF 

0M 

WF 

SY 

SP 

PMD 

AMD 

PMS 

AMS 

PAM 


2020 


58, 

15, 

3, 

1, 

237, 

0, 

88, 

0, 

1, 

3, 

0 , 

2030 

/* 

AR 

DR 

SR 

RR 

SL 

0L 

KS 

ML 

DTI 

DT2 

AME 

2040 


28, 

4, 

0, 

2, 

1, 

38, 

2, 

1, 

3, 

0, 

0 , 

2050 


22, 

9, 

1, 

0, 

1, 

48, 

2, 

12, 

0, 

0, 

0, 

2060 


29, 

4, 

3, 

3, 

1, 

38, 

1, 

3, 

?, 

0, 

0, 

2070 


15, 

T, 

4, 

2, 

5, 

0, 

2, 

1, 

0, 

0, 

0} 


2080 m vset(90,v) 

2090 /事 

2100 m_init( ) : for i=1 to 8 : m_alloc( 1 , 8000 ): next 

2110 for i=1 to 8:m_assign(i,i) : next 

2120 str a(256J,b(256],c[256],d[256],e(256],f(256] 

2130 str gi256),h( 2561,j(256J,k[256],11 256 ],m[256] 

2140 str n[ 256) ,0(256),p[256J,q[256J,r(256] t s[256] 

2150 str t[256),u(256],w( 2561 ,x{256j,y[256],z[256] 

2160 str aa[256],bb(256],cc[256],dd(256],ee(256|,ff[256] 

2170 str gg[256] ,hh[256] ,jj 1256] ,kk [256] ,11 [2561 ,mm[256] 

2180 str nn(256|,oo[256J,pp(256|,qq[256],rr[256],ss(256J 
2190 str t.tC256] ,uu[ 256] ,ww( 256] ,xxt256] ,yy(256J ,zz[256] 

2200 str sd[256J,bd[256],tl[256},t2[ 256] ,t3[256],t4[ 2561 
2210 key 19,"m tempo(200J"+chrS(13) : key 20,"m_tempo(117)"+chrS{ 
13) 

2220 /* 

2230 /• 

2240 a="tl17 [d.c.) o5 9Llrll6 ¢71 p3 q8 vU 748,20 yl5,0 

2250 b="aeeevl3plep2ep3vl4eeeevl3p2eplfrvl4p3fee 
2260 C="ddddvl3pldp2dp3vl4ddddvl3p2dplervl4p3edd 
2270 esb+c+c+b 

2280 d="«78*v0®79p3o2|:4r®78»v0«79vl4>fv8plr8t78«v0«79vl4gv8plr 
8978#ve«79vl4g6...v8plr4r«78®v0®79vl4gv8plr8«78»v0«79vl4fv8plr8» 
789v0«79vl4g6..,v8pl 

2290 e= w r4r<«78«v0«79vl4cv8plr8®78#v0®79vl4cv8plr8«78«v0«79vl4c 
6...v8plr4r«78*v0«79vl4cv8plr8#78«vC«79vl4cv8plr8«78«v0«79vl4c6. 

..v8plr4 : | 

2300 fs 、 8505 vll| : 3r8aa<e>a<a>ar2r8*g<d>g<g>gr2r8aa<e>«<a>»r2r8 
aa<e>a<a>ar8e8dc8d:jr8»a<o>a<a>ar2r8gg<d>g<g>gr2r8aa<e>a<a>ar2rl 
o5«71p3q8vl4y 48,20 
2310 zz= H [*] 

2320 ■ trk<l,a> / 拿 OPMA の SamplingFile 
2330 a trk(l,c> /* [Z あわせてちようせつしてあります • 

2340 ■ trk<l."[coda ド .c) 

2350 a trk(l,c) / • なるへ * <OPMA て * きいてくた * さい, 

2360 ■ trk<l,c> /* 

2370 ■ 一 trlcU,c> /« 

2380 ■ trk{l,o) /* 

2390 n_trk<l,c) ft 
2400 b trk(l.d) /* 

2410 m_trkU,e 丨ハ 
2420 «_trk(l,f) /* 

2430 m_trk(1,zz) /• 

2440 ft 
2450 /* 

2460 a=" [d.c.) o5 911rll6 «71 p3 q8 v!4 y49,16 

2470 b="ccccvl3plcp2cp3vl4ccccvl3p2cplcp2rvl4p3ccc 
2480 c=">bbbbvl3plbp2bp3vl4bbbbvl3p2bplbp2rvt4p3bbb< 

2490 c=b+c+c+b 

2500 d=**a78«v0«79p2o2 I : 4r«78®v0«79vl4>p2ev8plr8«78«v0«79vUp2ev 
8plr8«789v0«79p2vl4e6...v8plr4r«78®v0«79vl4p2ev8plr8«78®v0«79vl4 
p2ev8plr8«78«v0®79vl4p2e6.•.v8pl 
2510 e= H r4r«78«v0«79vl4p2av8plr8*78«v0879vl4p2av8plr8«78«v0®79v 
14p2a6...v8plr4r«78«v0«?9vl4p2av8plr8«78«v0«79vl4p2av8plr8»78«vO 
079vl4p2a6...v8plr4 : | 

2520 f=-«85o5vlly 49,441 :3r8aa<e>a<a>ar2r8gg<d>g<l>gr2r8aa<e>a<a 
>ar2r8aa<e>a<a>ar8e8dc8d : Ir8aa<e>a<a>ar2r8ag<d>g<g>ar2r8aa<e>a<a 
>ar2rlo5«71p3q8vl4y49 f 16 
2530 m trk(2,a) /« 

2540 m_trk(2,c) /* 

2050 m trk(2, , *[coda) n +c) /* 

2560 m trk(2,c) /* 

2570 m_trk<2,c> / 聿 


0^0000 


N320OOO 
A T 
p D 

s o l 3 3 7 7 
M T 
A D 

s o L 8 4 4 2 


D o s o o o o 


p o L o 5 o 5 
s s 


Y o R o 7 o ? 
s R 


A 6 A 3 3 3 3 t 


0 E o o o o 
M 

N320000 
A T 
p D 

s o l 0 o o o 

>1 T 
A D 


0 o L 2 o 2 2 


D o s 1 t 11 
M K 

D o し o 5 o 2 
M 0 3 15 


3 0 0 0 


N320000 
A T 
p D 

s 1 l 7 o 3 o 
M T 
A D 


D 8 s C 
M 8 K 


p 7 し 

s 3 s 




> A 3 2 3 2 < 


o E 0 o o o 


3 0 2 0 0 0 0 


5 0 10 0 0 0 


s o し o o o o 
M M 
p 

D o s 0 o o o 


o E o o 0 0 


,•320000 


s o 1 3 3 7 7 
M T 
A D 

s o L 8 8 6 6 


D o L 7 7 7 7 D o し 5 5 0 5 
M 0 2 2 2 2 M o1 1 


Y o R 5 5 5 5 Y 
s R 11 i 1 1 s 


o R 4 4 4 4 


M5R0606 V N5ROOOO V M 5 R 4 9 4 7 V 
o1 D l 1 o1 D 1 l 1 > 01 D » 


.lOROOOO V 


FOROOOOt 
A A e 


M 5 R o 5 0 5 V 
o1 D 1* 1 11 » 


0^0000 

^320000 
PD1 

s 112 2 3 3 

mdt 

s 0 L 5 8 7 2 
PMMl 

D 8 s 0 0 0 0 
AM8K 

D 0 L o 5 2 o 
M o 3 3 
p 

p 7 L 2 2 3 2 
s 3 s 
2 

Y 1 R 6 6 6 9 

s R 


M5R1119 V 
01D2221 I 

8e 

F9^1111t 
A5 ん 3333 e 


o B o o 0 o 
AM 

^320000 


s 0 1 3 3 7 7 
AMDT 

s 0 L 8 4 4 2 
M M 
p 

D 0 3 0 0 0 0 
M K 


p 0 L o 5 o 5 

s s 


Y 0 R o 8 o 8 

s R 

F 0 R 0 6 0 6 
w s 

H5R0606 V 
o1 D 1 1 f 


o E o 0 o 0 
A. 

AN3 2 0 0 o 0 
p D 

s 0 16 3 3 o 
M T 
A D 

s o L 1 1 T 1 
M Ml 
p 

D o s 3 3 1 3 
amk 

D o L 3 2 2 2 
M 0 3 2 2 
p 

p 0 L 5 1 0 1 

s 91 1 

Y 0 R 5 6 0 7 
3 R 1 

F 0 R 0 7 5 4 
w s 


o E 0 o 0 0 
AM 

N3200OO 
A T 
p D 

s 0 1 3 5 3 0 
M T 
A D 

s 0 L 1 3 11 

M M 
p 

D 0 s 21 0 1 
M K 
A 

D 0 L 3 2 2 o 
M 0 2 3 4 
p 

a. 0 L c 

s s 

Y o R 8 8 8 8 
s R 

F 0 R 2 0 0 0 

w s 


M5R4967 V M 5 R 7 
o1D1 1 » OID 


J 8 8 8 8 


.N328888 
A T 
p D 


•• T 

CD 

^ o L 8 8 8 8 


D 8 s 
”8 K 


3 3 3 3 


(»v) 


D o L 8 8 8 8 
M o 
p 

p 7 8 8 8 8 
s 3 s 
2 

Y 1 R 8 8 8 8 
s R 

F 3 R 8 8 8 8 
w s 

M5R8888 V 
OID I 


F8R101O t F80^26o8t F7R 8888 t 
A 2 A 3333 eA5AJ 1121 eA Js 


o E o o o o 


,•320000 
C T 
U D 


s o L 218 4 
M M 
p 

D o s o o 0 o 

AMK 

D o L 5 o o 3 
M 0 2 3 
p 

p o L 0 5 o 5 
s s 

V o R o 5 o 5 
s R 

r0 R 

n s 

M 5 R o 5 0 5 V 
OID 1 1 I 
5 
8 

FORllllt 
A6A 3233 e 


II 拿 拿 

,V / / 


I 寒 s 拿 拿 1拿 ii t 拿 ItS 鬈拿 |拿:拿 拿 I 拿嫌 I 拿 

m / V / / m / V / / m / V / / m / V / / m / V / 


I 拿:搴 拿 
ra / V / / 


78 0h! X 1991.2. 


►いやはや,なんともありがたいデイスタでした。あの福原氏の CG データがあっただけで 
もうれしいのに,この充実ぶり。う一ん,そういえば描の CG を見て,昔常連になるぞ宣言 
をしたときの山田氏の絵とはだいぶ違う雰囲気がしました。 富田祐樹 (18) 東京都 





2580 m trk(2,c) /« 

2590 m trk(2,c) /* 

2600 m trk(2,cJ ハ 
2610 m trk(2,d) /» 

2620 m_trk(2,e) /• 

2630 m_trk(2,f) /« 

2640 n trk(2,zz) /« 

2650 /« 

2660 /• 

2670 a:" Cd.c.J o4 «llrll6 «71 p3 q8 vl4 y 50,21 

2680 b="bbbbv13plap2ap3vl4aaaavl3p2aplap3rvHp3aaa 
2690 Cs"aaaavl3plgp2gp3vl4ggffgvl3p2<plgp3rvl4p3g2f{ 

2700 c=b+c+c+b 

2710 d="9784v 0980 vl3o3I:15v9plcv5p2cvl3p3ccv9plcv5p2cvl3p3ccv9p 
Icvl3p3cp2cp3cplcp3cv9p2cvl3p3c : | 

2720 e : "v9plcv5p2cvl3p3ccv9plcv5p2cvl3p3cc 

2730 f="e7 7o5(»vl2Sdl<9vl26c-19vl27d8.d8.c8dBc>a8. <e8cNd8c8d8. >88. 
&3 , • • r4x8>ie8 . r2<erdrcrd8r8d8c8d8c>»8 . <e8d Id8c8d8 . >g8. a3 . . . v11 bijii 
a I r8,«83o5vl5q7p2arer«<crc>bragrap3 
2740 2 : "9vl27<47 7o5d8.d8.c8d8c>a8. <e8d Id8c8d8 . > «8 . a3 . . . rl«a»ie8.r 
2<erdrcrd8r8d8c8d8c>a8 . <e8d-id8c8d8 . >g8 . a3 . . . r4ergarlo4®7 Ip3q8vl4 
y 50,24 

2750 m trk(3,a) /« 

2760 n_trk(3,c) /• 

2770 n trk(3,"tcodal'+c) /* 

2780 n~trk(3,c) /« 

2790 n_trk(3,c» /* 

2800 n trk(3,c) /• 

2810 m_trk(3,c) /« 

2820 n_trk(3,c) /« 

2830 m_trk(3,d) /* 

2840 m trk(3,e) /* 

2850 n_trk(3,f) /« 

2860 m trk(3,g> / 拿 
2870 m trk(3,zz) /» 

2880 ハ 
2890 /< 

29ea as- 【 d.c.l 、 o4 «12rll6 488 p3 q8 rl6 v8 y 51,20 

2910 bs M a2..e8g2..r8g2..b8a2..r16 【 coda]o 1972 

2920 c=~| : 6tvl27a8v7plrp2rp3«vl27egaav7p2rp3®vl27av7plrp3«vl27e 
av7p2rp3<«vl27cv7plrp3>«vl27g8v7p2rplrp3®vl27daggv7plrp3«vl27gv7 
p2rp3«vl27dgv7plrp3®vl27dv7p2rp3«vl27g8v7plrp2rp3 
2930 d^"tvl27deggv7p2rp3«vl27iv7plrp3®vl27div7p2rp3«vl27dv7plrp 
3®vl27a8v7p2rplrp3®vl27e*aav7plrp3«vl27av7p2rp3«vl27eav7plrp3«vl 

27«v7p2rp3 : I 

2940 •=”I : 4«vl27g8v7plrp2rp3«vl27>fg<degg<l>gv7p2rplrp3«vl27dv4 
p2rp3#vl27f8v7plrp2rp3>«vl27gf<defg<g>gv7plrp3®vl27«g8 
2950 fs"»8v7p2rplrp3«>*127>aa<egaa<a>av7p2rplrp3«vl27ev7plrp3®vl 
27a8v7p2rplrp3>«vl27a»<egaa<*>av7p2rp3«vl27ae8:||:3 
2960 g="f8v7plrp2rp3®vl27fcdfv7plrp3®vl27fv7p2rp3®vl27cfv7plrp3 
•vl27cv7p2rp3*vl27e8v7plrp2rp3#vl27cb<e>ev7plrp3®vl27ev7p2rp3 
2970 h=7«vl27dev7plrp3«vl27gv7p2rp3®vl27a8v7plrp2rp3®vl27aegav7 
Plrp3«vl27av7p2rp3®vl27<ab<cv7plrp3>#vl27a8v7p2rplrp3«vl27aegav7 
p2rp3«vl27av7plrp3€vl27gab<cv7p2rp3>«vl27 : I 
2980 J="®vl27dev7plrp3«vl27gv7p2rp3®vl27a8v7p2rplrp3®vl27aegav7 
p2rp3®vl27av7plrp3«vl27*av7p2rp3«vl27aav7rl 
2990 «_trk(4,«) /* 

3000 o_trk(4,b ) ハ 
3010 m_trk(4,c) /« 

3020 m_trk(4,d) /* 

3030 b trk(4,e) /« 

3040 m trk(4,f) /* 

3050 m trk(4,g) /* 

3060 m trk(4,h) /« 

3070 n trk(4,tf) /* 

3080 b trk(4,j) / 拿 
3090 m trk(4,zz) /* 

3100 /« 

3110 ハ 

3120 «=" (d.c.) o4 «12r 18 «88 p2 q8 r8 v8 y52,12 

3130 b="a2. .eg2 . . rg2 . .«78«v0o2®7 3p2vl 4a4vl3a&vl2a1tvl2atvl latvlO 
a&v9a&v8a[coda]978«v0976vl3o6q5aq8989plvl 303116 
3140 c="arerarearaerarergrdrgrdgrgdrgrvlOgrvl3ardrgrdgrgdrgrbra 
rerarearaera07 8dv0r976v 13o6q5a8q8<489pl vl3o3 
3150 d= M arerarearaorarergrdrgrdgrgdrarvlOgrv13grdrgrdgrgdrgr976 
V*l0o4q4plap3b<p2c>p3b<plcp3dp2ep3degab<c2e2 978^v0<l76v 13o6q5ar4 . 

3160 e="077oI0vl27q8a8.b8.<c8>b4.g3...r2g8.a8.b8b4.a3...476vl3o 
6q5ar l..0T7o4«vl 2 7q8a8 . b8 . <c8>b4 . g3 . . . r2g8 . g8 . <d8c4 . > a24a<»7 8«v0r 
v 1 347606 q5ar4.. 

3170 f=" 47705 «v127q8c8.>b8.a8b8.g8.<d3...d8.d8.U8d8.c8.>b8a8.b8 
.a24fi«78ev0rvl3«76o6q5ar4 .. 

3180 47 7059 v!2 7q8c8. >b8.a8b8.88. <d3. . . > b8 . b8 . b8b8 . a8 . «8a2 r2«4 

78*»v0mirll6 

3190 h = "@82plvl2o5q7 I : 2«irergrderi{rdonir : I I : 2«rararograretf rnr : I I 
: 2drergrdergrderi<r: I 

3200 j = "«l 17rl 16<483«i7p3vl5o5tirHttH. <cr8 . >p2v 12g»pl v 10jtarHp3v i lur 
g<drdcr4l1r116 

3210 k = vl2p2o3erjtrare<rttrerfrarer<rarif»r 1© l l 7 r 116 

3220 lr"fea6v7olnLUUla lb4<c4d4>aUle2.^33u5vl3q7r ».nrerg<crc>br 
agra^86v7olalglr l«87p3o6v9c!4c>b lit U l r8drer«ar«r<t--fcdc>ar<dc>a 
2«83plo5«vl27q7ergarl>52,12 
3230 ra_trk(5,a) / • 

3240 m~trk(5,b) /* 

3250 m trk(5 >c) /* 

3260 m~trk(5,d) /» 

3270 m_trk(5,e» /• 

3280 ro 二 trkt5.n /• 

3290 m_trk(5,g) /• 

3300 m trk(5,h) /« 

3310 m~trk(5,j) /* 

3320 m trk(5,h) /* 

3330 m_trk(5, い " 

3340 m_trk(5,l)/* 

3350 m trk{5,Z 2 J /« 

3360 パ 
3370 ハ 

3380 a:.. [d.c.] o4 dI2r 18 ®88 pi q8 r8 v8 >5:1,23 

3390 b= M a2 . . eg2. . r*2 . . <S7 3<Sv0o2«7 3pl v8a&v9a4v 10a4v 11 aAv 12a4v 12a& 
v 13a4vlla [coda] @7 8dv0«76 Vl3o5q5aq8d89p2vl3o.il16 
3 400 c= M arerarearaerarergrdrgrdgrgdrgrvlOarvl 3grdrardgrijdr2rbra 


rerarearaera9789v0r076vl3o5q5a8q8989p2vl3o3 

3410 d= M arerarearacrarergrdrgrdgrgdrgrvl0grvl3grdrgrdgrgdrg«789 
v0r476vl0o3q4p3aplb<p3c>p2b<p3cpldp3ep2dp3egab<cgeg •78®v0®76vl3 
o5q5ar4•.r8 

3420 e= M 990o4vl2q8a8.b8.<c8>b4.g3...r2g8.a8.b8b4.a2«76v13o5q5ar 
4••r 897704 vl2q8a8.b8.<c8>b4•g3•.•r2g8.g8.<d8o4•>a4..®78«v0rvl3#7 
6o5q5ar4..r8 

3430 fs" 99005 vl2q8c8.>b8.a8b8.28.<d3...d8.d8.d8d8.c8.>b8a8.b8.a 
4..«78®v0rvl3«76o5q5ar4..r8 

3440 g="«90o5vl2q8o8.>b8.a8b8.«8.<d3...>b8.b8.b8b8.a8.g8a2r4.«7 
89v0 


15 ^ 

..r2g8.a8.b8b4.al&a4aS. 
vl la<a>i\rr2 

..d8.d8.d8d8.c8.>bRa8. 

.> b8.b8.b8b8.a8.g8n4•.r 


3450 h=" 省 82p2vl2o5q7| : 2drergrdergrdergr : 

:2drergrder8rdergr:I 

3460 J = **r4«83q7p3vl5o4y53,36arga8 . <cr8 . >p2vl2gaplvl0gar8p3vl4ar 
g<drdcr4ry53,28 

3470 k= "98*iv5p3o3rer2rare2rare2rarergrargar4 . • 

3480 l = '*y53,48«86olv7 | : 2a lg 1 e la4 b4 <c4d4 > : I a lg 1 e l«87p lo6 vl 2q7c4 > 
b4a4g4alr8drergargrge-4dc>ar<dc>a2ia<crderly53,28 
3490 m trk(6,a) /• 

3500 m trk(6,bi /* 

3510 m trk(6,c) /* 

3520 m trk(6,d) /« 

3530 m trk(6,e) /* 

3540 m_trk(6,f) /* 

3550 m trk(6•g ) /* 

3560 tn~trk(6,h) /« 

3570 m - trk(6,J) /* 

35B0 m trk(6,h» /* 

3390 m trk(6,k) /« 

3600 m_trk(6 ,1)/« 

3610 m trk(6,z2) /« 

3620 ハ 
3630 /* 

3640 a=" [d.c.| o4 4L2r L8 «74 p3 q8 v9 y54,00 

3650 b="a2..e«2..rg2..bnllt6> 

3660 c = •• 【 coda )^75<»v* 127o3arer<irearaerarergrdrgrdgrtfdrgvI2rgrv 
rdrgrdgrgdrgrbrarer»rearaerar8. 

3670 d = M r2«'JOplo »vlOq8r4a8. b8 . <c8>b4 .<3. 
b8 . <c8> b4 . g3 . . . r2g8.|{8.<dBct975vl3a<a>ar 
3680 e : "«90plo5vl0q8r Ic8. >b8.a8b8.g8. <<13 . 
b8.a4 . r2. 

3690 f3 M «90plo5vl0q8c8.>b8.a8b8.«8.<d3. 

32.9784 v0r64 

3700 g = "081««vl2 7o3a8.g&gl&g2e4g8.aBer8er8. rlr4a8.gUj{2&gd-ltf8.e8 
e-c>ar2.r2.<a8. gkg l&tf2 

3710 hs"e4g8.a8er8er8.rlr4a8.2U22&ge4s8.arlrl 

3720 J= M ®86v7olcl>blala4bl<c4d»cl>blala8«83o4«vl27q7arer«<crc>b 
ragra086v7olcl>blalalb4<c4d4cl>bla2.983o49vl27Arb<crly54,00 
3730 m trk(7,a) /« 

3740 m_trk(7,b) /* 

3750 ra_trk(7,c) /* 

3760 m_trk(7,c) /« 

3770 mltrk(7,d) /* 

3780 m_trk(7,e) /« 

3790 m 二 trk(7,f) /* 

3800 m_trk(7,g) /* 

3810 m trk(7,hl /« 

3820 m.trk(7,j) /* 

3830 m_trk(7,zz)/* 

3840 /* 

3850 /» 

3860 as M [d.c.] o-l dl2r 18 974 p3 q8 v9 y 53,40 y3,3 

3870 b: , a2..eg2..rg2..ba2&l16y2,23a&y2,23a&y2,23a&y2,23a&y2,23a 
ky2 ,23a&y2,23a4y2•23a> 

3880 c=•(Codal«75«vl27y3,3y2,50arery2,14ay3,2y2,8ry3,3y2,23ey2, 
23ary2•23aery2•14ary3,ly2,66ery3,3y2,23grdry2,14gy3 ( 2y2,8ry3,3y2 
,23dy2,23gry2,23gdry2,14gvl2ry3,ly2,66gry3,3y2,23vi5grdr 
3890 d=*y2,14gy3,2y2,8ry3,3y2,23dy2,23gry2,23gdry2,14gry3,ly2,6 
6bry3 • 3y2,23arery2., I 4ay3,2y2,8ry3,3y2,23ey2,23ary2,23aery2,14ary 
2,14ry2,I4r 

3900 e="y2,Ugy3,2y2,8ry3,3y2,23dy2,23gry2,23gdry2,14gry3,ly2,6 
6bry3,3y2,23arery2,14ay3 l 2y2,8ry3 l 3y2,23ey2|23ary2,23aery2 l 14ay2 
,14ry2,14ry2,14r 

3910 fs"y2,50r4y2,l4ry3,2y2 , 8ry3•3y2•23ry2,23r990p2o4vl0q8ry2,2 
3r8.y2,14a8&y3,1 y2,66ab4y3,3y2,23b8<c8>y2 , Ub4>.3 • 2y2 • 8b&y3 • 3y2 • 2 
3b4y2,23b84y2,23b 

3920 t-^gSkyZ, 14g84y3,ly2,66g84j3,3y2,23gIy2,14 ry3,2y2,8ry3,3y2 
,23ry2,23r8y2,23r8.y2, 14284 y3,ly2,66ga&y3.3y2,23a8b8y2,14b4y3,2y 
2,8b4y3,3y2,23b4y2,23b84y2,23ba84y2,14a8&y2,1 Ia&y2.Ha4y2,50a44 
3930 h= M y2,14a&y3,2y2,8a&y3,3y2,23a&y2,23a8&y2,23a8.72,14a84y3, 
1/2,66ab4y3,3y2•23b8<c8>y2,14b4y3,2y2•8biy3,3y2,23b&y2,23b84y2,2 
3bg8icy2, 14g84y3, ly2,66 

3940 j= *g8ty3,3y2,23g4y2,14 ry3,2y2,8ry3,3y2,23ry2,23r8y2,23r8 . y 
2,14g84y3,ly2,66ggacy3,3y 2,2348 <d8y2, 14cty3,2y2,8c&y3,3y2,23c4y2, 
23c«75vl3>a<y2,23a>arvlly2,14a<»>y2,14ay2,14ry2,50r4y2,14ry3,2y2 
,8ry3,3y2,23ry2,23r8 

3950 k = M «90p2o5vl0q8y2,23r8.y2,14c84y3, Iy2,66c>b4y3,3y2,23b8a8y 
2,14b&y3•2y2•8b4y3•3y2,23by2•23tf8&y2,23g<d84y2,14d8ky3 ,ly2,SSdBk 
y3 • 3y2,23d4y2,14d4jr3,2y2 • 8d4y3,3y2,23dy2,23d84y2,23dd8y2,l 4d8fcy3 
,Iy2,66dc4y3•3y2,23c8>b8y2•14a4y3,2y2•8a4y3•3y2,23ay2,23b8 
3960 l= M 4y2,23ba84y2,I4a8ty2,14a&y2,14ay2,50r4y2,14ry3,2y2,8ry3 
,3y2,23ry2,23r8y2•23r8. 

3970 m= ,, «9Op2o5vl0q8y2,14c84y3,ly2,66c> b&y3.3y2,23b8a8y2,14 b4y3 
,2y2,8b4y3,3y2,23by2,23g8&y2,23g<d84y2,14d8&y3, ljr2,66d8&y3,3y2,2 
3d4 

3980 n= M >y2,I4b&y3,2y2,8b&y3,3y2,23by2,23b8&y2,23bb8y2,I4b8&y3, 
ly2,66ba4y3,3y2,23a8g8y2,14a&y3,2y2,8a4y3,3y2,23a4y2,23a84y2,23a 
8&a32.«78«»v0r64 


3990 02 ..9819V 127yS 5,4803 y2,14a&y2, 14a&y2,14ay2,14g&y2,23g4fcy2 ,1 
4g&y3,2y2,8g4y3,3y2 ,23gky2 ,23g8&y2,23g8.&y2 r 14g8&y3,ly2,66g8& 

4000 p= _.y3,3y2,23g4&y2,14gtcy3,2y2,8g&y3,3y2,23g4y2 r 23ge&y2,2 3e8 
.y2,14g4y3,ly2,8g&y3,2y2,8<afcy3,3y2,23aer8y2 f 14ey3,2y2,8ry3,3y2• 
23ry2,23r8y2,23r8.y2,14r8y3,ly2,66r8y3,3y2,23r4y2,Ury3,2y2,8ry3 
,3y2,23ry2,23r8y2,23r8. 

4010 q="y2,14a&y3,ly2,8a&y3,2y2,8ag&y3,3/2,23g4fcy2,14g&y3,2y2,8 
«Acy3,3y2 • 23g&y2,23g8ty2 • 23g8.4y2 •14g8&y3 •1 y2,66g8&y3,3y2,23<44>*2 
,14g&y3,2y2,8g&y3,3y2,23«&y2,23g(14y2,23d8. 

4020 r= "y2 ,14g&y3 •ly2,8tf&y3,2y2,8«e&y3 • 3y2,23*se-c>ay2 ,14ry3,2y2 
,8ry3,3y2,23ry2,23r8y2,23r8.y2, l Ir8y3, ly2,66r8y3,3y2,23r4y2,l4ry 
3,2y2,8ry3,3y2,23ry2,23r8y2,23r8. 

4030 «s-<y2,Uaty2,14aty2,I4ay2,14gfty2,23g44y2,I4g&y3,2y2,8tf4y3 


►やつと出ましたね, X 68000 マシン語プログラミングく入 H 編〉。あまりのうれしさにま 
だ全部読み終わっていないのに,愛読者カードを出してしまった。 W 木俊一 (21) 來京都 


0 h!X LIVE in ’91 79 






,3y2,23g&y2,23g8fcy2•23*8• kjZ, 14g8ky3,ly2• 66184 y3,3y2,23f44y2,14g 
け 3•2y2•8g&r3,3y2,23g&r2,23ge け 2•23«8• 

4040 t="y2,14g*y3,1y2,8g4y3,2y2,8ga4y3,3y2,23«er8y2,14cy3,2y2,8 
ry3,3y2,23ry2,23r8y2,23r8.y2,14r8r3,Iy2 1 66r8y3,3y2,23r4y2,14ry3, 
2y2,8ry3,3y2 t 23ry2,23r8y2,23r8. 

4050 u= M y2,14a*y3,ly2,8«4y3,2y2,8«g*y3,3y2,23g4fcy2,14gty3,2y2,8 
gky3 t 3y2,23g&y2•23g8fcy2,23<8.*y2•14g8*y3•ly2,66g84y3,3y2,23g44y2 
,Hg*y3,2y2 l 8g4y3,3y2,23gAy2,23ge4y2,23e8.y2,14g*y3,Iy2,8g4y3,2y 
2,8ga 

4060 w= H y3,3y2,23ry3,ly2,32r32r2,32r32y2 > 32ry3,3y2,32ry2,I4ry3, 
2y2,8ry3,3y2,25ry2,34r 3272,34 r32y2,34ry2,34ry3,2y2,35rr73,3y2,14 
rry3,Iy2,66rry3,3y2,23ry3,Iy2,32r32y2,32r 3272,32 py3 ,372, 32ry2 f 14 
ry 2,34 ry3,ly 2,32 ry 3,3 y2,23rr 

4070 x=**y2,16r32y2,16r32y2,15ry2,15ry2,15ry2,14ry2,14ry2,14r«86 
olv7|:3 

4080 yz H y2 • 23e8&y2 • 23e8&y2 • lAekjZ ,2y2, 8eky3,3jr2,23e4y2,23e84y2, 
23e8.4y2,14e8&y3,Iy2.66e8y3,3 

4090 z= M y2,23d84y2,23d8&y2 t 14d4y3,2y2,8d4y3,3y2•23d4y2,23d8iy2, 
23d8. ky2, 14d8&y3,ly2,66d8y3,3 

4100 aa="y2•23c84y2,23c84y2•14c4f3,2y2•8c4y3,3y2,23ciy2, 23084 y2 
,23c8.4y2,I4c84y3,Iy2,66c8y3,3 

4110 bb=”>y2•23a84y2•23a8y2,14b4y3,2y2•8b4y3•3y2,23b4y2,23b<c4y 
2,2308 .y2,14d84y2,I4d&y2,14d:I 

4120 cc=..y2 • 23c84y2,23c84y2,14c4y3, 2y2, 8cAy3,3y2,23c4y2,23c8&y2 
,23c8.y2,14«83«v127o5ery2,14gy2,I4ar2.y2,23ry2,23ry2,23ry2,23r 

4130 m_trk(8,a) /* 

4140 m trk(8,b) /* 

4150 m trk(8,c) /• 

4160 ra trk(8,d) /* 

4170 m trk(8,c> ハ 


4180 m trk{8,e) /* 
4190 ra_trk(8,f) / 拿 
4200 m_trk(8,g) /• 
4210 m trk(8,h» /« 
4220 m_trk(8,J> /* 
4230 m trk(8,k) /« 
4240 m_trk(8,l) /* 
•1250 in_t rk ( 8 , ro) / * 
4260 mitrk(8,n) /* 
4270 m 一 trk(8.o) /• 
4280 m_trk(8,p) /* 
4290 m_trk(8,q) /« 
4300 m_trk(8,r) /» 
4310 m こ trk(8,a) /« 
4320 m_trk(8,t) /« 
4330 m_trk(8,u) /• 

4 3-10 rn_trk( 8 , w) / * 
4350 m_trk( 8 ,x) /* 
4360 m_trk( 8 ,y) /* 
4370 m_trk( 8 ,y) /« 
4380 m trk( 8 ,aa) /* 
4390 m_trk( 8 ,bb) /« 
•1400 m_trk ( 8 , y) /* 
■1410 m_trk ( 8 , 2 } /* 
4420 m_trk( 8 ,cc) /« 
■14 30 m trk( 8 .zz) /* 
4440/7 
4450 ft 
4*160 m_play() 


li スト 2 スブーンおばさん 


日本音楽著作権協会(出)許諾第9072264 -00 1号 


10 
20 
30 

40 * RINGONOHORI 

se 
60 
70 
80 

99 

100 INIT:DBFSTR A-Z:DEFINT X:GOSUB 1400 

lie DIM A(16) > B(16) ( C(16),D(16),B(16),P(16),G(16) 
120 TBMPO0 


130 

149 B 

150 C 
160 D 
170 E 
180 F 
190 G 
200 A 
210 B 
220 C 
230 D 
240 B 
250 F 
260 G 
270 A 
280 B 
290 C 
300 D 
310 E 
320 F 
330 G 
340 A 
350 B 
360 C 
370 D 
380 E 
390 F 
400 G 
410 A 
420 B 
430 C 
•HO D 
450 E 
460 F 
470 G 
480 A 
490 B 
500 C 
510 0 
520 E 
530 F 
540 G 
550 A 
560 B 
570 C 
580 D 
590 E 
600 F 
610 G 
620 A 
630 B 
640 C 
650 D 
660 E 
670 F 
680 G 
690 A 
700 B 
710 C 
720 D 
730 E 
740 F 
750 G 
760 A 


-06V12Q7L8I1 
=-05V12Q7L8Il 
=”02V13Q7L8I1 
= M 04V11Q7L8I1 
= M 04V11Q7L8I1 
="04V12Q7L8I1 
: ”05V6I3Q3L8 

="C<B-AGFEDC< B-AGPECDE GFBFGFKF 
="R1 R1 R1 

s"C>C<G>C<C>C<G>C <OC<OC<CCDK F4C4F4D-4 

="R1 R1 R1 

=-Rl R1 R1 

="R1 R1 R1 

**"R1 R1 R1 

="B-4.ARAAA AFFDD<B-B-G> <GA>DCRCDE 
z**Rl R1 R1 

s"D4G-4A4D4 G 4040404 C4G4CCDB 
s M Rl R1 R1 
=~R1 R1 HI 
s_Rl R1 R1 

="V12R4R4.CCC R1 R4R4.CCC 
="CFEFGFEF B-4.AR>DDD 
s"Rl R1 

= **F4C4F4D-4 D4G-4A4D4 
="R1 R1 
= M R1 R1 
="R1 R1 

: "R1 R4R4.CCCV6 
="D く AAFFDFA E4EFB2 
="R1 C4<ARR2 
s"G4D4G4D4 C4CFRCC4 
="R1 Rl 
="R1 R1 
= ..R1 Rl 

=~<A4>C4G4.F8 EFC<A>C<AB->C C<B-B-AAGB->D 
= w Rl Rl D 1 

=-F4C4F4C4 F4F4G-4G-4 C4D4G4D4 
: "Rl Rl Rl 
= M R1 Rl Rl 
= W R1 Rl R1 

="I202VlIQ8F2F2 F2F#2 G2G2 

r M G2.R4 <B-4>D4A4.08 C-CD<B->D<B->CD 

s M Rl Rl Rl 

= ,, G4D4GFED G 4040404 G4D4G4D4 
= M R\ Rl Rl 
s"Rl Rl Rl 
= rt Rl Rl Rl 

="G2&G<B - >DG B-2A2 G-ZG2 
= M F.DDCCDEC A2R4C4 >C4 . <B-B-A40- 
s M Rl Rl Rl 

= *'04040404 F4C4F4FG A4E-4D1G-4 
: ”R1 Rl Rl 
s"Rl Rl Rl 
s*. Rl R1 R1 

s"C2C2 V6F2.FG A2B-2 

= H ACG-CU-2 DHRUEKDH DERDK2& E2RCDK 

="R1 Rl FGRKG2 & G2R2 

s M 040404 GA B->CR<B->CR<B->C <B->CR<B - >C2 C<B-GKCCDE 
r"Rl Rt Rl Rl 
: "Rl Rl Rl Rl 
=”Rl Rl Rl Rl 

= h A 2G2 DERDERDE Rl C<B-GECCDE 
= M GFEFGFEF B-4.ARAAA AFFDD く B-B-G 


820 G(9)= 


830 A( 
840 B( 
850 C( 
860 D( 
870 E( 
880 F( 
890 G( 
900 A( 
910 B( 
920 C( 
930 D( 
940 B( 
950 F( 
960 G( 
970 A( 
980 B( 
990 C( 
000 D 
010 E 
020 F 
030 G 
040 A 
050 B 
060 C 
070 D 
080 E 
090 F 
100 G 
110 A 
120 B 
130 C 
140 D 
150 E 
160 F 
170 G 
180 A 
190 D 
200 C 
210 D 
220 E 
230 F 
240 G 
250 A 
260 B 
270 C 
280 D 
290 E 
300 F 
310 G 


770 B(9)="R1 Rl Rl 

780 C(9)= M F4C4F4D-4 D4G-4A4D4 04040404 
790 D(9)= M R1 Rl Rl 
800 E(9) = **R1 Rl Rl 
810 F(9)= rt Rl Rl Rl 

I3Q30SV12R1 R4R4.CCC R1V6 
••GA>DCRCDB GFEFGFBF B-4 .AR>DDD D く AAFFDFA 
M R1 Rl Rl Rl 

"C4G4CCDE F4C4F4D-4 D4G-4A4D4 G 4040404 
"Rl Rl Rl Rl 
"Rl Rl Rl Rl 
'•Rl Rl Rl Rl 
M R4R4.CCC Rl Rl Rl 
M B4EFR2 >D4F4G4FD CF4A4A2 
">C4<ARR2 Rl Rl 

-C4CFRFGA B-4F4B-4B-4 F4C4F4GA 
"Rl Rl Rl 
M R1 Rl Rl 
•• R1 R 1 Rl 

"I102Q8R1 F2F4GA C2C2 

M D4F4G4FG <B4>Vt3FV10<B-&B-2 R<AAAAA4>>>C164D16 
..Rl D4RD4D2 く RCCCCC4R 
M B-4F4B-4F4 >A4RV13G4G2V11 RFFFEE4R 
r M D2D-2 <G4.G4AB-G >CU 
=”R1 Rl Rl 
=”R1 A4AG4G2 Rl<< 

• M R1 Rl Rl 

= '*GFBDC<AEC R<<B-B-B-B-B-4>>G16&A16 B-AGFD-C く B-F 
="R1 Rl Rl 
= M R1 RGGGFP4R Rl 
=”C1 <B-14 B-l>> 

= M R1 Rl Rl 
="R1 Rl Rl 
_M R1 R1 Rl 

="RDD4DDR>D D4DDR2V12< 

= ,f RFF4FFR>F F4FFR2< 

="RB-B-4B-B-R>B - B-4B-B-R2<< 

= ..R く CC4CCRC C4CCR<CDE>> 

="Rl Rl 
= M R1 Rl 
Rl 

= ..E4EFRCDE 
= M V13C4<ARR2V10 
= M R l 

= M V13C4CFRV4CDEV10 
s-Rl 
: "Rl 
= "R1 

: "04E4EFK>DDD D<AAFFDFA E4EFR<GA>C F4R<<<A16A16A4H4 
= M 04V12C4ARR2 Rl C4ARK2 H-IRC16C16C4R4 
= M Rl Rl Rl R4RF16F16F4R4 
= M Rl Rl Rl R4R<<F16F16F4R4 
•*R1 Rl Rl Rl 
•Rl Rl Rl R4KA16A16A4R4 
"Rl Rl K1 Rl 

320 PLAY A(0H >": "♦B(0)* M : M +C(O )* H : ">0(0)* H : M *E(0)+ M : "*K(0)+ M :**♦ 
G(0) 

330 RESTORE 

340 READ X:IF X=999 THEN END 

350 PLAY A ( X ) ♦ •* : "♦B( X) M +C(X) ♦** : "♦D( X) X) ♦*': M + F(X) ♦*': "♦ 

G(X) 

360 GOTO 1340 

370 DATA 1,2,3,4,5,6,7,8,9,10,11,12 
380 DATA 13,14,5,6,7,8,9,10,15,9,10,16 
390 DATA 999 

,100 MEM$(&HB190,36)=HBXCHR*rFA 00 31 4C 33 5125 2F 2F 00 9C 9 
6 5D 8F 04 09 04 87 00 01 03 00 151216 A5 80 80 80 80 00 DC 80 


00 02 80")'PIANO 

1410 MEM$(4HB1B4 t 36)=HEXCHR$( M F810 3F 36 31 513123 2D 00 52 5 
D 50 8E 9F 88 8A 8014 OC 01 01 2A 2A 03 0A 81818182 F4 C8 D0 
00 02 80">'CELLO 

1420 MHM$(&HB1D8,36)=HEXCHR$C , E4 40 OC 0C 4C 3C 37 00 37 001A 1 
31214 95 9? 83 8D 0912 0012 0C FB 04 FF 00 00 00 80 00 8B EO 
40 02 80")'BIRD 
1430 RETURN 


80 Oh! X 1991.2. 



















HE SOFTOUCH 


_ 


SOFTWARE INFORMATION 


1111 It 

iniin 

今月もいろいろな情報が飛び込んできまし 
た0いやあ,この時期はいいですねえ,ネ 
夕に困らなくって。でも X 68000 を中心に 
動いているメーカーさんも増えてきたし, 
こういう状態がずっと続くといいなあ0 




ノスタルジア 

噂 ばかりが先行していたが,ようやく 姿を 現した ぞ。いま 
までのァ ド ベンチャー とはひと味も ふた味 も 違う作りだ。 


1?のソフト化 


さあ,どこもかしこも年末進行。アタマ 
はみんなナチュラルハイ! X 68000 に向 
かって笑いかけてる自分がコワイぞ,へへ。 

まずは,タケルのノスタルジア。豪華客 
船で突如発生した乗っ取り事件,偶然乗り 
合わせた主人公は事件解決に向けて行動を 
開始する……,てなアドベンチヤー。でも, 
従来のそれとはちと違う。いわゆる“早解 
き”ふうではなく,会話を楽しみ“行動す 
る”といったゲーム。主人公の感情や関心 
がそのままグラフィックで表されるし,時 
限爆弾解体シーンでも,ネジの回る様子を 


表示してスリル感をアップしている。こう 
いった細かな感情の動きを絵にすることで, 
プレイヤーもどんどん引き込まれ,思わず 
ニヤリってなわけです。感覚的には知的対 
話型アクションてカンジかな。 

次は, システム サ コムのチャイム。中学 
時代同級生だった3人の女の子が別々の高 
校へ進み,さまざまな人に出会い成長し, 
それぞれに道を歩んでいく様子を描いたア 
ドベンチャー。登場人物はかなり多〈,な 
かにはサ コムの 人をパロったものも。 

そのほか電波新聞社ではエイリアンシン 
ドローム, SPS ではメルヘンメイズ,シス 
テムソフトではボンバーマン,ホビージヤ 
パンではブラックレインボウとビーストロ 
ードをそれ.ぞれ開発中とのこと。それじゃ。 



□ OCTOR 2. X 使用上の注意 

| 月 号の付録ディスクに収録されているウイ 
ルス検出用 プログラム 「 D 0 CT 0 R 2. X 」 は, フロ 
ッビー ディスクに記録された IPL (イ ニシャ 
ル •プログラム •口ー ダー) という 起動時に最 
初に読み込まれるプログラムをチェックしてい 
ます。通常、 IPL は Human 68 k の純正のもの 
がその まま使われることが多いのですが,市販 
のゲーム ソフトには オリジナルの IPL が使用 
される 場合 も あります。 

そこで、 D 0 CT 0 R 2. X を組み込んでいる場合, 
オリジナル IPL のゲームディスクを起動しよ 
うとすると, D 0 CT 0 R 2. X は.次のようなメッセ 
—ジを 出すよう にしています。 

1 ) これは Hudson 純正の I Pl -ではないが大丈夫でし 
ょう。シフトキーを押すと続行します。 

また,一部のソフトで,オリジナル IPL を 
使用したものである にも かかわ らず次のような 
メ ッセー ジが出ることがあります。 

2) これは未知のウイルスに冒されているかもしれ 
ません 0 注射をしますので,ドライブ1に Human Ver . 
1.00 ( 相当品)を入れて,リターンキーを押してく 


ださい。 

これは,本来 Human 純正のシステムが書き換 
えられている場合に出す警告ですが , DOCTOR 
2. X の不備で,純正 以外の IPL に対してもチ 
ェック項目が--致してしまったためです。もと 
もと,書き込み 不可の ディスクではウイルスめ 
侵入はないはずですから市販のソフトの場合は 
まず 安全です。メッセージを見て驚かれるかも 
しれませんが,無理に治療しようとはしないで 
ください。現在各 ソフト ハウスでは十分なチェ 
ックを行.ってソフトを出荷しているはずです。 

1) の場合はシフトキーを押せばそのまま起動 
しますが, 2) の場合には OPT .1 キーを押しな 
がらリセットして起動してく ださい。 

もちろん,通常お使いのシステムディスクで 
1),2) のメ ッ セージが出たときは注意が必要で 
す。 その場合には編集部までご連絡ください。 

また,市販ソフトで I )または 2) のメッセージ 
が出た場合には, プロ テク ト シールを剝がさな 
いように保存しましょう(最初から切り込みが 
ないディスクは安全)。万がーウイルスに感染 
するとオリジナル IPL が壊れてゲームは起動 
できなくなります。 (編集部) 


THE SOFTOUCH 81 















































リンクマスター II 

シナリオ丨でリングナイトに昇格した主人公 
だったが,密命を帯び,ゴトランタ大陸のムル 
ソン大公国を訪れる。フィリアス•ノギスに迫 
る戦争の予感。激動する事態を前に,君は使命 
をまっとうできるか……? 

すいません。これ,ほとんどパッケージのコ 
ピーそのままです。しかしまあ,もともとシナ 
リオが命のリング マスターで すから,やりもし 
ないうちに窨いてしまうのもナニかなぁと。 

というわけで,実際に遊んでのレポートはま 
た後日にするとして,ここでは概要だけ紹介す 
ることにしましよう。 

リン グマス ター II は テーブル トークの老舗ホ 
ビー ジャパンが, そのノウハウを生かして作り 
上げた本格派 RPG です。スキル, メンタル ボイ 
ント, さまざまな攻擊修正など,特に ルール 面 
がしっかりしているのが特徴。シナリオも綿密 
な世界観に基づいて書かれ,人口無脳を搭載し 
た登場人物との会話によってストーリーを進め 
ていくことができます。 

X 68000 に関してはシナリオ,グラフィック 
などによりきめ細かなチェックを入れ,より完 
成度を高めてあるとのことですから, RPG ファ 
ンにはたまらない I 本となることでしよう。 

(ですます浦) 

X 68000 用 5" 2 HD 版3枚組8, 800円(税別) 

ホビージャパン 003 (3354)9341 


Magical Shot 

M . N . M Software のビリヤードゲーム 「Magic 
alShot 」 もいよいよ発売を迎えたようだ。 

ウリはなんといっても本格的な 3 D 処理,ポ 
リゴン処理を使ったビリヤードゲームは,たぶ 
ん日本では初めてじゃないかな。いろんな角度 
から台を眺められるというのは,ビリヤードで 
は重要なだけに嬉しい。マウ 
スで台をスルスルと動かすの 
は,なかなか気分がいいぞ。 

さらに打ったあとにはインス 
タントリプレイも見られる。 

ナイスシヨットの快感を何度 
でも味わえるぞ。 


ゲームは オーソドックスなナインポール。対 
戦相手は,ァダルトな雰囲気の紳士淑女が8人 
揃っている。ビリヤードがお好きな人は必携の 
I 本だぞ。 (ファンキー浦) 

X 68000 用 5 " 2 HD 版6, 800円(税込) 

ブラザーエ業 ( TAKERU ) ©052(824)2493 


IkV : g 



ザークレジェンドスペシャル 

ザークレジェンドスペシャルは,新進ソフ 
トハウス,マキシマのアクションゲームだ。高 
貴な血筋を引く主人公アンドレアが,大魔王ザ 
—クを倒すために立ち上がるというもの。ツボ 
を押さえたストーリーですな。 

ゲームは縦型のスクロール画面。現れる敵を 
剣や銃で倒し,入り組んだ地形をジャンプで克 
服してどんどん進んでゆくのだ。感じとしては, 
イース in などよりは,むしろスーパーマリオと 
かビクターの 「シャツ タードフュ 
ーチャー」に近い。みんな知らな 
いか。 

しかしマニュアルには 「 PC -98 
〇丨でのソフトウェアスプライト」 

をウリにしているけど, X 68000 
ではこれくらいの動きは並って感 
じがする。音楽も中村泰士氏とい 
うことだけど,ちょっとゲームを 


意識しすぎてかえって古いタイプのゲームミュ 
ージックだという気がする。 

アクションゲームとして見ればアニメー ショ 
ンはきっちりしてるし,敵の配置なども考えて 
あるけど,そこはそれ,もはやゲーセンの移植 
を見ても驚かない X 68000 ユーザーが相手だけ 
に厳しいかな。 (ファンキー浦) 

X 68000 用 5"2 HD 版4枚組8,800円(税別) 
マキシマ 006(56 丨 )2215 



V レ""/""》/》ン"/""""""/"/""ン>"^^^^^^ 



M . N.M Software のパズルゲーム「スライス」 
がそろそろ登場の見込み。こちらには完成版が 
届いたので紹介しちゃおうかな。 

まずルール。 3個同じ種類のブロックを並べ 
て消すという,コラムスと同じものだ。ううん, 
シンブルイズベスト。面白いのはブロックが着 
地してからで,ブロックを左右に倒すことがで 
きる。当然平坦なところばかりじゃないから, 
ひっくりかえったり,ブロックが分割したりす 
る。さらにそれから移動させることもできるの 
だ。着地してからその先がどうなるか,なかな 
か予測がつかないけど,それだけに自分の思い 
どおりにいったり,思いがけず大量の連鎖反応 
を起こしてしまうと嬉しさに体が溶けてしまう。 
ああ,もうダメって感じ。 

BGM はあの古代祐三氏。今回はスクラッチ技 
を使ったファンキーな BGM で楽しませてくれる 
ぞ。“ I ,2,(ゴシュゴシュ)ヘイ!"って感 
じで。く一っ,イカすぜ〇今日からみんなもス 
ライスで,“丨,2,(ゴシュゴシュ)ヘイ!” 
だ。ヘイ! (ファンキー浦) 

X 68000 用 5"2 HD 版6,800円(税込) 

ブラザー エ業 ( TAKERU ) 0052(824)2493 


大航海時代 


光栄の大航海時代の X 68000 版が完成,発売 
された。このゲーム,船隊を率いて7つの海を 
渡り,国王に認められるほどの大人物になるの 
が目的というものなんだ。とにかく,みんなの 
評判になればなんでもヨシってのがいい。地道 
に貿易をして大商人になるもよし,海賊になっ 
て敵国の艦隊をドカドカやっつけるもよし,港 
に投資をして事業家になるもよし,自分の好き 
なようにプレイできるところが特徴なんだな。 

X 68000 版はマウス専用オペレーション。昔 
よりだいぶ考えられていて,ウィンドウも好き 
な場所に動かせる。なかなか快適にプレイする 
ことができるぞ。個人的には数字ぐらいキーボ 
ードで入れさせてほしかったけど。 

Xlturbo 版の弱点だったスピードも速くなっ 
たし,音楽もグレードアップ。しゃベリも入ったし,グラフィックもなん 
となく高級感が出ていて,ああ, X 68000 ユーザーで良かったなあと素 
直に感じさせてくれる出来なのだ。 

(ファンキー浦) 

X & 8000用 5"2 HD 版2枚組9,800円(税別) 

光栄 0045(561)6861 




THE SOFTOUCH 



82 Oh! X 1991.2. 




































































SOFTWARE INFORMATION 


スペースローグ 

オリジン社の本格的 SFRPGr スペースローグ j 
が発売になった。移植したのはウェーブトレイ 
ン,「宝島」でお馴染みの JICC 出版局のブランド 
だ。 

主人公は新米パイロット。ワヶあって母船を 
失い,小型偵察艇と我が身ひとつで身を立てな 
ければならない。さて,どうするか。商人とし 
て名声を得るもよし,宇宙海賊として名を成す 
もよし,身のふり方は君に任せられている。あ 
れ? 大航海時代みたいだな c やがて宇宙を旅 
するうちに自分を取り巻くストーリーが見えて 


くるという次第。 

ゲームはポリゴン処理による 3 D フライトシ 
ミュレータと,トップビュー型の RPG でなって 
いる。ちょうど「スタークルーザー」の惑星部 
分を 2 D にしたような感じだ。 

まだ現物は届いてないけれど,ウルティマを 
生んだ RPG の大御所オリジンの作品だけに.ど 
んなイベントと仕掛けが待っているのかが楽し 
みだ。 (真面目な浦) 

X 68000 用 5"2 HD 版9,800円(税別) 

ウェーブトレイン 003(3288)1426 



ブルトン•レイシナリオエティタ 

「シナリオエディタも出してね」とレビュー 
に害いたのはこの私だったが,さっそくシステ 
ムソフトからシナリオエディタが届いてしまい 
ました。見事な攻擎だ。 

このシナリオエディタでは,登場人物やマッ 
プのパターンは「ブルトン•レイ j か「同シナ 
リオ集 j に収められているものを使う。ユーザー 
は マップ, 魔法,アイテム,メッセージ,それ 
から敵と登場人物の設定などをすればよい。何 
をしたらどんな処理をしてというフェイズ設定 


を行えば出来上がりという仕組みだ。シナリオ 
におかしな点がないかどうかはプログラムがき 
ちんとチェックしてくれる。 RPG のシナリオエ 
ディタとしてはかなり手軽で親切な部類に入る 
だろう。 

単に ブル トン.レイのシナりオバリエーシヨ 
ンを增やすというだけでなく,ゲーム,特に R 
PG を作ろう! などと思ってる人は,シナリ 
才作成の勉強のつもりでこういった市販のエデ 
ィタでシナリオを練ってみてはいかがだろうか。 
I 本のストーリーを仕上げるには,いかに細か 
な配慮が必要かよくわかるし,きちんと動いた 
ときの喜びも味わえるぞ。ちなみに,プレイす 
るのには 「ブル トン•レイ」が必要なのでお忘 
れのないよう。 (真面目な浦) 

X 68000 用 5"2 HD 版2枚組4,800円(税別) 
システムソフト 00^2(752) 5278 



レインフオーサー 

ザイン • ソフトの今度の新作は「レ インフォ 
—サ ー 」。 謎のテロリスト組織 ニュー トを倒す 
ために2人の特殊工作隊員が潜入する, という 
設定のアクションゲームだ。 

ビルのオフ ィスに 始まる ステージは,ストー 
リーに合わせて変わってゆく。 8 方向にスクロ 
ールする マップ上で5種類のウエボンを使いこ 
なし, 相手の 死角をぬって敵を倒していくのだ。 
セガの 「クラックダウン j などをほうふつとさ 
せる。 

私が ちょっと 試した限りでは,なかなか 真面 
目によく作りこまれて いた。 各 兵器の 特徴 づけ 
もよく出ているし,操作性や動きに不満点はな 

い。 

しかし私は悲しい ぞ。 「バルーサ の復謇 _] の デ 
モで見せたザイン•ソフトのあのセンス,あれ 
は どこへ行ってしまったのだ。これはこれでい 
いけど,私は ザインというと,こう,サルがほっ 
ベた引っ張っちゃうような,あんなのがいいな 
あ。いいなったら。(真面目 & ファンキー浦) 
X 68000 用 5 ” 2 HD 版 4 枚組 8, 800円(税別) 

ザイン.ソフト 0078(242)2855 



ァト5ック•ロボキッド 

UPL のアー ケード ゲーム 「アトミック_ ロボ 
キッド」が,システムサコムにより移植された。 
いわゆる,パワーアップシューティング。マッ 
プの中をひたすら進み続け,5種類ある武器を 
効率よく使い分けながら,現れてくる敵をバッ 
タバッタと薙ぎ倒すというもの。ところどころ 
に分岐点があり,それぞれ難易度が違ってくる。 

全部で20面あり,ある一定面数ごとに,画面 
を余裕でぶちかまし,はみ出るほどのボスキヤ 
ラとの対決,自櫬と似たようなロポットとの対 
決シーンもあり,プレイヤーを飽きさせない。 


キャラクターもメカニカルでかわいい。そし 
て,コミカルな自機キャラクターの正面顔が 
とっても“ぶりてぃ一”である。マップのある 
ところには,残機数と引き替えにアイテムを 
謀ってくれるゴジラ君がいる。僕は最初出会っ 
たとき,敵と間違えて犁ち殺してしまったが, 

こいつの泣いてる様子が実はかわいかったりす 
る。こんなゲームに関係ないところでも楽しま 
せてくれる。フアンには期待の丨作ですね。(純) 
X 68000 用 5 " 2 HD 版2枚組 8, 800円(税別) 

システムサコム 003 (3635) 7609 


ファランクス 

「ジェノサイド」「ラグーン」とたて続けにヒ 
ット作を出して, X 68000 ユーザーみんなの期 
待を一身に背負ってしまったズーム。さて,そ 
のズームの 第3弾は, シューティングに決定。 
タイトルは「ファランクス j 。 基本的には横ス 
クロール タイプのシューティングだ。 

現段階ではオープニングが完成し,ゲームの 
中身に 取り掛かっているところ,とのこと。こ 
のオープニングでは,拡大,縮小,回転と X 68 
000の 機能を フルに 使って くれてい る。まだゲ 
ーム自 体は 見て いないの でな ん ともいえないけ 
ど,このぶんでは期待していてもよさそう。 

発売は春ぐらいになるらしいから,来月あた 
りにはゲーム 画面を お届けできるんじゃないか 
な。 がんばれ, ズーム。 (香) 

X 68000 用 5〃2 HD 版 価格 未定 

ズーム 001 1(613)0191 



THE S 0 FT 0 UCH 


83 





















































HE SOFTOUCH 


甲子園優勝までの長い道程 


Kageyama Hiroaki 

影山裕昭 


ここにきて野球ゲームがたくさん発売されているが,この 
ゲームはちと毛色が違う。プロ野球でもなければ,アクシ 
ヨンゲームでもない。アートデインクの十八番,箱庭的高 
校野球シミュレーシヨンゲームなのである0 


•栄冠は君に 




緬球全8故 


高校野球=坊主頭。それが僕のィメージ。 
実は痛校野球を見ること力 f ほとんどない人 
間なのだ。それなのに「今日の〇 X 対△口 
の試合はどっちが勝ったの?」とうんざり 
するほど#ねられる。高校野球に興味のな 
い人間はめずらしいかのようだ。でも,僕 
みたいなのに限って,母校が出場したりす 
ると,はりきって甲子園まで応援しに行っ 
ちゃうんだよな。 

まずは下準備 ♦♦♦,♦♦,•,♦♦舞 

ゲームは全国高校野球大会地区予選に向 
けての練習から,地区予選,甲子園での全 
国大会までをシミュレートしている0最大 
のウリは全国3990校もの実在の高校のデー 
夕をディスクに収めたことだ。その中から 
好きな高校を選び,チームの監督として甲 
子園大会優勝を目指すのだ。甲子園で優勝 
したときには,真に3990校の頂点に立った 
ということになる。 

このゲームでは (初めての試みというわ 
けではないが)自分は選手を直接動かすの 
でなく,監督として指示を出すのである。 

監 ff の仕事はたくさんある。しかし,画面 
に姿を見せることはない。監督はディスプ 
レイの前にいる自分自身なのだ0 

さて,まずは ゲームに 先立って ユーザー 
ズ ディスクを最初に作る。生ディスクを自 
分で1枚用意しよう。 ユーザーズ ディスク 



X 68000用 5"2 HD 3 枚組9,500円(税別) 
アートデインク 00478(79)9392 


は, ユーティリティディスク(製品に含ま 
れている)をドライブ0に入れて立ち上げ 
ると作れるようになっている。とっても簡 
単。画面の指示に従ってドライブ1に生デ 
ィスクを入れて,マウスをクリックして侍 
つこと2分半。次に全国49地区から出場地 
区を選択する。甲子園にいちばん近いのは 
鳥取だろうか。ここは23校で地区予選を争 
うので。逆にいちばんの激戦区が神奈川。 
倍率202倍はかなりきつそうだ。 

地区の選択がすむと,その地区から出場 
する高校名.が表示される。高校名をクリッ 
クすると,その高校の野球部の部員数,総 
合評価が表示される。それを参考にして監 
督になる高校を選択する。高校を決めたら 
6種類のユニフォームから好きなのをひと 
つを選んでおしまい。このあと,さらに1, 
2分侍たされて,やっと出来上がりだ。全 
部で5分はかかるはずなので,コーヒーで 
も脇に準備して作業を始めるのがいい。ち 
なみに ユーザーズ ディスタはゲームの途中 
経過を1力所しかセーブできないから,ゲ 
ームを始める前に何枚も作っておくほう力す 
無雛:だろう。一度ユーザーズディスクを 
作ってしまえば, Human 68 k の DISKCOP 
Y で何校でも複製できる。 

監當つこ; t 麥 ♦♦♦♦♦♦♦♦♦♦♦♦令 

PL 学園とか天理とか甲子園でおなじみ 
の強豪高校の監督もいいだろうけど,やっ 
ぱり母校に硬式野球部があるのなら,甲子 
園で優勝させてやりたいものだ。卒業式で 
しか歌った覚えのない校歌だけど,甲子園 
で母校の校歌を流したい。いまになって愛 
校心に目覚めてしまった僕は,母校を選択 
した。僕の母校は埼玉県の大宮®高校。こ 
のゲームでは“大宮西山”となっているけ 
ど,気に入らなければ校名を変更すること 
だってできる。総合評価は C だったがシヨ 
ックはまったくない。事実,うちの野球部 
は弱かったのだ。こいつらを鍛えて甲子園 
を戦い抜けるような強靱な精神力と肉体を 


作ってい X のだ。監督として十分やりがい 
のある仕事じやないか。 

地区大会までの40日間は練習モードだ。 
この間に選手の実力を把握して,主将,守 
備位置,レギュラーを決定する。操作はす 
ベてマウスで行い, メニューには, 

練習,選手情報,決定変更,システム 
がある。監督たるもの,まず選手の長所, 
短所を知らな〈てはならない。マウスカー 
ツルを “選手情報”に持っていき,クリッ 
クする。すると,学年別,正選手,内野, 
外野……(ほかにもいろいろ)といったメ 


ニューが出る。内野をクリックすれば,内 
野手の情報がずらずらっと表示されるわけ 
だ。名前や打率はもちろん,ヒット,2塁 
打など各安打別の本数も 一13瞭然だ。さら 
に選手1人ひとりが体力,打力,走力,守 
備力といったパラメータを持っていて,こ 
れらから選手の実力を判断する。それがで 
きて初めて効率のいい練習メニューを組み 
立てることができる。 

全員の情報をざっと見回すと,さすが3 
年生は実力がありそうだが,1年生はまだ 
まだ貧弱なのが多い。そういったことを念 
頭において“練習”をクリックするとポッ 
プアップ メニューが またまた表示される。 
守備位置別だとか個人別だと力、,細かい選 
択ができるようになっている。練習内容は 
筋力強化,足腰強化といった基礎体力を赉 
うものから,守備練習,打擊練習,投球練 
習,技術講習といった技術的な面を磨くも 
のがある。40日も期間があるんだから,最 




ユニフォームの選択,ポーズが決まってる 


84 Oh! X 1991.2. 








初から個人別に細かく練習内容を指示して 
いては気が遠くなってしまうし,とりあえ 
ず1年生は足腰強化,2年生は筋力強化, 

3年生は守備練習と,学年別におおまかに 
指示していくことにする。 

全員に練習内容を指示すると画面には校 
庭が映し出され,選手たちの練習風景を観 
察することになる。選手はすごく細かく描 
き込まれている。しかも,画面写真ではよ 
くわからないかもしれないが, アニメ ーシ 
ヨンしているのだ。素振りをしていたり, 
投球練習していたり,タイヤを引きずって 
いたり,ネット越しに女生徒が手を振って 
いたりもする。画面モードは 768 X 512 の高 
精細モードで16色しかないのだが,選手の 
アニメパターン も自然で無理がなく校庭の 
グラフ イ ックもよく描けている。 

練習を重ねてい〈と,選手のパラメータ 
は少しずつ上昇していく。地区予選30日前 
になったころに,選手情報をもとに個人別 
に弱点部分を補強していくような練習をさ 
せることにした。選手によっては守備位置 
を変更したほうがいい場合もあるだろう。 
それも“決定変更”で簡単に行うことがで 
きる。しかし,副産物としてコンバートさ 
れた選手の“自信”のパラメータが下がっ 
てしまう。いいかげんな気持でコンバート 
するとあとで泣くはめになる。 

まずは練習試合 ♦♦♦♦♦♦♦♦♦♦♦ 

要領がわかってきた予選20日前になって, 
花咲徳英高校から練習試合の申し込みがき 
た。どうしようか? 選手の実力が計れる 
し,練習試合はこちらから申し込むことが 
できないことを考えれば,試合をしてみた 
ほうがいいようだ。そうなるとまずベンチ 
に入る15人を選ばなくてはいけない。選手 
データを参考にして,見込みのあるやつを 
選んではカチカチと左クリックする。15人 
選んだら先発選手を決めて打順を組む。 

これで終わりではない。1 塁, 3 塁の コ 
ーチャーズボックスに立たせる選手も決め 
るのだ。コーチの走塁技術がランナーの進 
塁を左右するらしいから,いい加減な気持ち 



明けても暮れても練習の毎日 



じや選べない。ここまでやってようやく試 
合開始となる。初めての体験なだけに選手 
の選択にだいぶ手間取ってしまった。監督 
の苦労を垣間見た気がする。 

試合はリアルタイムで進められていく。 
両軍 ベンチ から選手が ホームベース 前に整 
列して挨拶から始まる。野手が守備に散る 
とピッチャーは投球練習を始める。プレー 
中は相手バッターがフライを上げれば,勝 
手に動いて捕ってくれる。盗塁だって勝手 
にやるし,バントだってそうだ。選手は指 
示がなければ自分の判断で試合を進めてい 
くので,とりあえずほっといても試合は終 
了するのだ。力 ? ,ここいちばんというとき 
は監督が腰を上げねばなるまい〇インプレ 
一中でなければ,マウスの左クリックでい 
つでもタイムをかけることができる。そし 
て“打て”と力 1 “牽制を多くしろ”と指示 
を与えていくのだ。 

やっていると気になる部分はちよこちよ 
ことあるが,全伸:的にはよくできているゲー 
ムだ〇選手の動くスピードと打球の速さもバ 
ランスがとれている。まるで本物の高校野 
球を ヘリコプ ターから観戦しているような 
気分に浸れるほどだ。選手は凡フライを落 
とす マヌケ ぶりだし,ピッチヤーを マ ウン 
ドに送れば,ぼこぼこに連打を浴びる。き 
ちんとパラメータどおりの働きぶりをする。 
しかし,豆粒のような選手がひとつの白球 
を追いかけてプレイしている姿は“馬鹿な 
奴ほどかわいい”の言葉どおり愛着が湧い 
て〈るのだ。 

自分が選手を動かすことができないので, 
ときにはもどかしい思いをすることもある。 
実際の監督もさぞかしもどかしい思いをし 
ているんだろう。しかし, 9回製にサヨナ 
ラホームランを打ってくれたときなんかは 
デイスプレイの前でガッツポーズをしたり 
したっけ。ああ,恥ずかしい。 

練習試合が終わったら選手のデータを見 
てみる。 「エラーを した選手は自信が下が 
っているなあ,もうちょっと守備を練習さ 
せなきや。あいつは長打力があるからさら 
に磨きをかけるか」,などと練習メニュー 



ついに準決勝,気合いも十分だ 


の組み立てがしやすくなるのだ。練習期間 
はこのようにして過ごしていく。終わって 
みればあっという間の40日だ。 

我が母校は I 霞 ♦♦♦♦♦♦♦♦♦令 

地区予選はトーナメント形式で競われ, 
本物の高校野球とまったく同じ ^ 試合の進 
め方は練習試合となんら変わりない。自分 
のチーム以外の試合は結果だけがわかるよ 
うになっている。全部の試合を眺めなけれ 
ばいけないわけではない。| 

我が母校は地区予選で優勝し,っいにあ 
こがれの甲子園初出場を果たした,。,甲:チ園 
では入場行進.と選手宣誓が(ちゃんとブニ 
メーシヨンで)行われ,1冋戦の組み合わせ 
が発表される。我力 ? 母校は準決勝で敗れたも 
のの,初出場でベスト4に入ることができ 
た。真紅の大優勝旗を手にすることはでき 
なかったが,悔いはない。それが高校野球と 
いうものなのだ。優勝すると「全国制®の 
軌跡」力す見れるというからがんばってきた 
のに残念だ。その代わり,僕の脳裘に,はこ 
れまでの出来事が走馬灯のよラに浮かんで 
は消えていく。 

後輩が果たせなかった夢をいっ か 実現 さ 
せることを誓い,僕の夏は終わった。 ■ 

注文があります 

本文で窨かなかったことで,あったらいいな 
と思ったことをいくつか書き連ねる。データ置 
的に無理だろうけど,校歌が本物だったら 最高。 
試合中の指示では打者に右狙い,左狙いをさせ 
れるようにしてほしい。甲子園で負けたら砂を 
かき集めるシーンもほしい。選手の不祥事で出 
場辞退とかあったら,よりリアルだった?あ 
と,タッチアップがどうしてもできないのだが 

. 。 ないのは絶対におかしい。もし,なんら 

かの操作でできるのであれば マニュアルに 明記 
すべきだ。 

文句をつけたあとでいうのもなんだが,この 
ゲームは このままでも十分に楽しめた。 買って 
損はない。 

総合評価 〇_ 5_10 

シミュレート ★★★★★★★★女 
グラフィック ★★★★★★★女 
雰囲気 ★★★★★★★★女 

感情移入度 ★★★★★★★★★女 


THE SOFTOUCH 


85 
















HE SOFTOUCH 


KLAX はビッグ X の夢を見る 


またまたパズル ゲームの 登場、 このゲームはアーケード か 
らの移植です。効果音が楽しく、単調になりがちなパズル 


Yamada Junji 

山田純二 


ゲームを盛り上げてくれます。肩ヒジを張らずに楽しみた 
い、そんなゲームです0 


•KLAX 


KLAX 

: 


「まいど〜おさわがせ しま〜す」とばか 
りに,またまたアクション パズルゲームが 
発売された。その名も 「 KLAXj ! このゲ 
ーム,オリジナルは1990 年にアタリからア さて, 

ーケードゲームで登場し,日本では SEGA 
からアーケードで出されている。そして, 


今回の X 68000 版はハドソンからの発売と 
なったわけだ。 

ゲームの内容というのは,宣伝文句のと 
おり「タテ,ヨコ,ナナメに KLAX! j で 
ある。え,なんのことかわからないって? 
では,もう少し具体的にいうと,同じ色の 
ブロックを縦か横か斜めに3個以上並べる 
とそのブロックカ ? 消えて(これをクラック 
スと呼ぶ),ある条件を満たすと面クリアと 
いうルールになっているのである。と,こ 

れだけ聞くと「な〜んだ, COLUMNS と同 
じじゃないか」と思う人がいるだろうが, 
基本的にはそのとおりだったりする。 

が,こちらはコンベアから転がって〈る 
ブロックをパドルで受け止め,倉庫に積み 
上げていく,というゲーム形態が取られて 
いる。しよせんは,どこかで見たようなも 
のではないかという気がしなくもないが 
(パズルゲームがたくさんあるせいもある 
んだろうけど),のめり込める要素も十分持 
っているし,出来自体もけっして悪くない。 
このところの怒濤のシューテイング寅めで 
疲れた頭を休めるのには,ちようどいいゲ 



XB 8000 用 5 M 2 HD 版 8,800円(税別) 

八ドソン 003(3260)4622 


ームだろう。 

さあ, KLAX だ! ♦♦♦♦♦♦♦♦♦♦ 

いきなり結論めいたことをいって 
しまったが,もう少しこのゲームについて 
見ていくことにしよう。 

画面構成は,上半分が コン ベアである。 
ここを転がってくるブロックは,全部で10 
種類あり,これとは別にどんな色にも使え 
るワイルドブロックなんてものもある〇画 
面中央にはパドルがあり,プレイヤーはま 
ず コン ベアで転がってくるブロックを,こ 
のパドルを左右に操作して受け取るわけだ。 
そして,画面下が倉庫。ここにブロックを 
に落としていけばいい。 

倉庫に積み上げられるのは 5 x 5 個のブ 
ロックで,全部稍み上がってしまうとゲー 
ムオーバーとなる〇ハ。ドルにも 5 個までブ 
ロックを積み上げることもできる。複数積 
み上がったときには,いちばん最後に積み 
上げたブロックから落とすことができる 
(図1)〇いわゆるスタック構造というヤツ 
だね。 

パドルの下には得点表示,画面のいちば 
ん下にはクリアすべき 
条件,個数が表示され 

ている。で,パドルの 
少し上にはドロップメ 
ーターなるものがある。 

ようするにパドルで受 
け損なったブロックの 
個数が表示されるわけ。 

5 回ブロックを受け損 
なうとやっぱり ゲーム 
オーバ、一となる。 

操作については,単 
純明快であまり説明の 
しようもないのだが, 

下方向のキーを押すと 
ブロックの転がってく 
る速度が上がり,上方 
向のキーを押すとパド 


ルに積み上げたブロックをコンベアの半分 
まですっ飛ばすことができることだけは, 
ぜひ覚えておいてほしい。 

とはいえ,これを乱用して調子にのって 
遊んでいると,あとで混乱の絶頂(笑)を 
迎えることになるので,ほどほどにしてお 
こぅ。 

あそぼ ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦ 

では,いよいよ遊んでみよう。と,その 
前に各面(ここでは WAVE と呼ぶ)で,ク 
リアすべき条件について説明していきたい< 
いくら得点を稼いでも, WAVE の最初で提 
出された課題(ノルマ)をクリアしない限 
り,次の WAVE に進むことができない。課 
題のパターンは全部で 5 種類あり,以下列 
挙してい〈と, 

1. KLAX TO GO X 

X 個のクラックスを作る。 

2. HORIZONTALS LEFT X 

ヨコのクラックスを X 回作る。 

3. DIAGONALS LEFT X 

ナナメのクラックスを X 回作る。 



86 Oh! X 1991.2. 



























X 点の得点を獲得する。 

5. TILES TO GO X 

タイルをパドルで X 回受け止める。 
となっている。これらの ノルマは, 5面ご 
とに繰り返されていて, WAVE が進むごと 
にだんだん X の数が多〈なり,条件が厳し 
くなっていく。ちなみに,ここでいうクラ 
ックスというのは,ブロックを揃えること 
を指しているのだ。 

慣れないうちは,3番目のナナメのクラ 
ックスを作るのに苦労するかもしれない。 
基本的なパターンとしては,図2のように 
していくのがいちばんよいと思う。惯れて 
きたら,3ブロック以上のクラックスを狙 
ってみるのもいいだろう。 

このナナメクラックスは,あとあとのた 
めにもぜひとも マスターして おかなくては 
ならないだろう。なぜなら,3個のブロッ 
クで構成されるクラックスのうちでいちば 
ん得点が高いからである。3個のタテクラ 
ックスでは50点しかもらえないが,ナナメ 
にすると100倍の5000点であるので,結構効 
率的なのだ。 

そして,このてのゲームにある連鎖反応 
も忘れてはならない。次々とブロックが消 
えていき,得点が跳ね上がる。これがある 
からやめられませ〜ん,てなもんだ。目指 
せ,ビッグ X ! 得点計算については,図 
3を見てほしい。 

効果音も忘れずに ♦♦♦♦♦♦♦♦♦♦ 

ゲームの内容もシンプルで奥も深く面白 
いが,このゲームの効果音もなかなかおち 

図1 



積み上げて 


落とすと 



自分のレベルに合わせて面をスキップできるぞ 
ゃめである。 

まずは,ブロックが転がってくる音だが, 
それぞれのブロックごとに効果音が違うの 
である。ぺっぽこ,ぽこぽこ,どどどん, 
てな具合にとぉっても楽しい。 BGM がない 
代わりにこれらの効果音がプレイを盛り上 
げてくれる。 

また, 4個のクラックスをやったときに 
は女性の声で 「 Woo 〜」とか,5個のとき 
には 「 Yaaa 〜〜」などと色っぽい声で叫ん 
でくれるし,パドルにブロックがなにもな 
いときに スペースキーを たた〈と「ボ ョョ 
〜〜ン」などと漫画のような効果音が飛び 
出してくるのだ。 

WAVE クリア時には観客の拍手,ゲーム 

図2 



①③ © の順番に落とす 

①②③では青のブロックが崩れてしまう 


図3 


真ん中にワイルドタイルを落とす 




赤 



赤 



緑 

W 

緑 

赤 



1赤 




20000 ナナメ 
+1000 ョコ 

.2 I 0 0 0 x [2] クラックスの総数 



面の最初にはノルマとヒントが表示される 

オーバーのと きには 「Aaa 〜」 と 聞く からに 
残念そうな声までやってくれる。聞ぃてて 
恥ずかしいこともなくはなぃ力す,楽い、こ 
とには変わりなぃ(しかし,•自室でやって 
いたら親はぃったいなにやってんだろ,と 
思うかもしれなぃな)。 

まとめ ‘ 

で,ひととおりゲームをプレイしてみた 
感想としては,操作もルールも単純明快だ 
し,また本文中に何回も述べてぃるように, 
確かにそれなりの面白さがある。しかし, 
やっぱり去年ノぐズルゲームが多かったせい 
なんだろう力%今となってはありきたりの 
感じを受けてしまうのが残念。 

ちょっと気が向ぃたとき,のほほ〜んと 
プレイするのがいちばん向いているのかな, 
こういったタイプのゲームは。 

パズル ゲームというのは一発アイデア勝 
負どころだから,もっともっと奇抜なテイ 
デアが出てきてもおかしくはなぃんだろう 
し。難しいところだねえ。ふう。 

私,負けましたわ 

KLAX , このゲームについてはあまり語ること 
はない。すでに,家庭用ゲーム機にも移植され 
ているので知っている人は知っているだろうし。 
これといって強力なウリはないが,静かな面白 
さを持っている,そういったゲームだ。 

が,そんななかでも,効果音はとんでもなく 
気に入ってしまった。寝不足ナチュラルハイ状 
態のプレイ中に,思わず右手を振りかざしてノ 
ッてしまうほどだからね。 

アタリのゲームには,親切なことにそのまま 
でよいような•言葉まで,わざわざ妙な日本語を 
使ってくれるくせがあるが,このゲームもその 
特徴は生かされている(笑)。なんでも社長が猛 
烈な日本ファンだとか。ま,この点については 
笑って見逃してあげましょう。 

総合評価 0_5_10 

グラフィック ★★★★★★女 
効果音 ★★★★★★★★★女 

ゲーム性 ★★★★★★★女 

ビッグ X ★★★★★★★★★ 

日本語 ★★★★★★★ 


THE SOFTOUCH 


87 






























































































HE SOFTOUCH 


男は筋肉だ,ムキムキだ If , イエイ! 


■ 


Nishikawa Zenji 

西川善司 


あのレナムから1年,ようや〈ヘルツの X 68000 用ゲーム 
第2弾が登場。今回は,うって変わってアクションもの, 
アー ケードゲームからの移植作品だ 0 ジョイステイックで 
ガシガシやりたい。 


•タイナマイト•デ=1ーク 



初めにいっておくが,私西川善司はホモ 
ではない。が,筋肉ムキムキの男なんかに 
多少の憧れがある。というのは私は痩せ男 
で,力もあまりなく,小学校の体育のプー 
ルの時間のときにはよく「人体骨格標本」 
なんて,たいそうな冷やかしを食らったも 
のだ。 

だから力持ちの男にはちょっと畏敬の念 
をもっちゃってたりするわけだ。そんな憧 
れからか シュワルツ ネッガーや スタ ロー ン 
の内容のほとんどない映画なんかもよく見 
るし,格闘もののゲームも結構やったりす 
る(遊園地とかにある腕相撲 マシンは 間違 
ってもやらんけどね)。 

で,今回発売されたダイナマイト•デュ 
—クはそんな筋肉ムキムキの男が単身敵基 
地へ 乗り込んでいく横 スクロール 型格闘シ 
ューティングだ0このゲームはあまり有名 
でないかもしれないが,ゲームセンターの 
ゲーム,つまり アーケード ゲームからの移 
植なのだ。オリジナルはセイブ開発という 
メー カーなんだけど知っている人はいるか 
な。最近ヒットしているシューティング「雷 
電 ( RAIDEN ) J を作ったメーカーだ。え, 
「雷電」も知らない?あの「究極タイガー」 
の SF 版見たいな奴(あ,禁句かな,これっ 
て)。まあいいや。移植は「全身凶器の怪 
力女」という流行語を世に送り出したゲー 
ム「レナム」を制作した ヘルツ だ。 



X 680 U 0 用 5"2 HD 版3枚組8,800円(税別) 
ヘルツ 003(3371)3012 


こんなストー U —だズガガガガ ♦♦♦ 

舞台は近未来。環境の激変に対応すべく 
新人種が創り出された。これが強化人間と 
呼ばれる人種で,開発に着手していた軍人 
のひとりがそいつらを従え,世界征服の計 
画を企てちゃったのだ。 で,ゲームの 主人 
公であり強化人間第1号の「レッド•ダイ 
ナマイト」(本名はデューク•フリードリッ 
ヒ.フヱルゼンだそうだ0道端じゃ絶対フ 
ル ネームでは 呼びたくない奴だな) は, こ 
の計画に背いて一度秘密基地から脱出する 
ものの,組織撲滅のため単身舞い戻る……〇 
なんか仮面ライダーの話に似てないことも 
ない力、とにかくこれが「ダイナマイト. 
デューク」の バックス トーリーだ。 

こんなゲー h だズガガガガ ♦♦♦♦♦ 

ゲームは,右から左ヘスクロールする背 
景の陰から次々と出現する敵を,マシンガ 
ンの照準を合わせて擊ち倒すといった一見 
オーソドックスな内容。しかし,によっ 
てはデュークのそばまで近寄ってきて攻撃 
してくるものもいるので,そういった連中 
とはパンチやキックの肉弾戦となるのだ。 
肉弾戦中は基本的に銃が使えない(要する 
に遠くの敵が倒せなくなる)ので,このへ 
んの駆け引きがゲームの面白さにつながる 
わけだ0肉弾戦時は プロレス ゲームのよう 
にスティックの方向と, A / B ボタンの押し 
具合でさまざまなアクションをデュークカ 5 ' 
見せてくれるぞ。また,敵は兵士のほかに 
も戦車や戦關ヘリ,挙げ句の果てにはゾン 
ビや忍者,わけのわからんゲロゲロエイリ 
アンまで飛び出してくるぞ……。 

ところで,敵を撃ったり殴ったりするだ 
けならどんな人間でもできなくはない。し 
かし,主人公デュークはいうのも恥ずかし 
い強化人間なのだ。強化人間といえば「必 
殺技」だ。彼の右腕は機械でできているが 
別に「パックスのしわざ,その1」のせい 
でもなんでもなく,その必殺技を繰り出す 


ためにつ いている のだ。その名も「ダイナ 
マイト •パンチ」, B ボタンを押し続ける 
と パワーゲージが 上がりだし,ゲージ ] VIA 
X のところで離すと打つことができる。こ 
れは画面上の敵を一掃できる必殺技で,ま 
あ, A - JAX や究極タイガーなんかのスー 
パー ボムのようなものといえばわかっても 
らえるだろう。 

ゲーム中,自分に攻撃を仕掛けてこない 
物が バシバシ 壊せるのもこのゲームの面白 
さだ。ベンツやジープ,電話ボックスに配 
電ボックス,実生活では絶対に壊せないも 
のまで壊せるぞ。え? そんなのいつもや 
っているって0そりや犯罪だぞあんた,パ、 
ビヨーン。で,多くの場合こういったもの 
の中からパワーアップアイテムが出現する。 
弾丸やダイナマイト•パンチの素なんかも 
あるから「怪しい」と思ったら迷わず擊っ 
てみるといい。 

各ステージの最後にはボスがいて,こい 
つらもデュークと同じ「強化人間」だ。確 
か「強化人間」は「環境の激変に対応すベ 
く」開発されたというのにどいつもこいつ 

もひょうきんものの個性派揃 L . 。各ボス 

は主人公同様「必殺技」を持っていて,そ 
れをデュークに対して執拗にしかけてくる 
(というよりほかに技がないのかもしれな 


ステージは 全部で9。各 ミッション 変化 
に富んだ敵キャラ,背景で,もうアドレナ 
リンじゅくじゅくだぜ,ベイビー。 



ほうら,背中が透けてる 


88 Oh! X 1991.2. 















ステージ攻 IS だズガガガガ ★♦餐♦餐 


ボタンを押すと 「 CREDIT : 0」と出 
てくる。さらに B ボタンを押すとクレジッ 
卜が増えていく。9までしか入らないよう 
だ。つまり コンティ ニュー回数は9回とい 
うこと。ステージは全部で9だから妥当な 


回数といえよう。ゲームを開始するとステ 
ージ1の始まりだ。当たり前だ,突然最終 
面が始まるわきゃない。 

1面は敵飛行場の破壊。 スクロールが 始 
まるとジープが目につく。これをまず破壊 
してみよう。防弾チョッキが出てきたはず 
だ。これをさらに擊ち続けると下に降りてき 
てアイテムゲージに収まり自分が身に付け 
たことになる。このようにアイテムは出し 
ただけでは駄目でちゃんと繋って取らなけ 
ればその効果を得られないのだ。 

おっと,さっそくいかにも雑魚という感 
じの兵士が飛び出てくる。ジョイスティッ 
クで照準を合わせてショットしよう。数発 
弾を当てるとこの雑魚兵士は 「ワン」 
といって倒れるぞ。犬か, こいつら は。気 
づいたと思うがデュークは背中に穴が空い 
ている(「あんた,背中が透けているぜ」な 
んちゃって)。これは別に病気でも心霊写 
真でもなんでもない,デュークの目の前に 
敵が接近してきたとき,その位置をわかり 
やすくするため便宜上こうなっているだけ 
なのだ。でも目が惯れるまではちょっと奇 
妙な気分だ。 


ぉぉっと,雑魚キャラものがして溜めす 
ぎるとちょっと大変だぞ。画面中敵弾だら 



セビアに時が止まる! つてか? 



どうでもいいけどヘンなカツコ 



けっこう強いヘリコプター。でも本ボスじやない 


けになっちまう。これまた気づいたと思う 
が敵の弾は自分の位置に接近してくると色 
がオレンジから白っぽい黄色へと変わる0 
この性質を利用して敵の弾の遠近をつかん 
で効率よくよけよう。そうだ,いい忘れる 
ところだった。敵の弾をよけるのにもって 
こいの技がある,「伏せ移動」だ。ジョイ 
スティックを斜め下方向に入れると通常よ 
り高速に移動ができるのだ。するるるる一 
ってな感じだ。 

しばらくするとスクロールが止まり,中ボ 
ス「武装ヘリコプター」が登場してくる。 
地道にマシンガンもいい力す,せっかくだか 
らいっちよ派手に「ダイナマイト•パンチ」 
を使ってみよう。……さすが必殺技,一撃 
でへ リコプタ ー 爆発だ。ズバーン! ! ! 

そのあと少しの間,雑魚との戦闘が続く。 
で,本ボス登場。こいつは「スタンガン」 
とかいう名前のデュークと同様強化人間だ。 
こいつは右腕がロケットパンチ,左腕がマ 
ジッタハンドという,もはやまともな日常 
生活は送れない,人生を投げたような奴だ。 
このゲームを始めたばかりの人は,恐らく 
こいつにかなり苦しめられることだろう。 

スタンガンはマジックハンドを振り回す 
前に腕を水平に構える。これを確認したら 
すぐ「伏せ」の体勢を取ろう。ノーダメー 
ジでよけられるぞ。どの面の本ボスも自分 
の「必殺技」を使うとき,必ず独特のポー 
ズをとるようだ。頭に叩き込んでおこう。 
ジャンビングキックやダイナマイト•パン 
チがうまくスタンガンに命中すると,奴は 
遠くへ放り出される。このときスタンガン 
は起き上がりざまにロケットパンチを撃っ 
てくるので注意しよう。これも「伏せ」で 
避けられる。 

と,このように,本ボスは闇雲にジョイ 
スティックをガチャガチャやって戦わず, 
しっかり自分なりのパターンを組み立てて 
戦えばそれほど難しくないはずだよ。 

では最後に全ステージタリアのためにポ 
イントを示しておこう。 

•ステージ3の橋の上の砲台はダイナマイ 


卜•パンチでやっつけよう。ダイナマイト • 
パンチが砲台に隠されているので結局± 0 
だ 。 

•ステージ4。中ボス戦車の出てくるシー 
ンで手前の柱に防弾チョッキが……。 
•ステージ5は最初の力べとなるだろう。 
中 ボスヘリ コプターのシーンで 「FULL A 
UTO 」 のアイテムがあるが,これは取らな 
いこと。次に出てくる本ボスは結構堅いの 
でダイナマイトパンチを使って倒そう 。 「F 
ULL AUTOj を取ってしまっているとダ 
イナマイトパンチが打てないぞ。 
♦ステージ7の赤忍者の手裏剣は,相手が 
投げのポーズのときに一度伏せ移動で左に 
行ってから右へ行けば簡単によけられる。 

翁ステージ8のゾンビシーンに出てくる救 
急箱は「毒」。取ると体力が減っちゃう。 

籲最終面のボスは2回変身するので体力配 
分,弾数配分を慎重に。1回目の変身時は 
ジャンプキックの連続をお見舞いすれば楽 
勝。2回目変身時に繰り出してくる触手は 
正面に来ても「伏せ」てればやられない。 
• 了 ッパーとジャンビングキックは必ずマ 
スターすること。対本ボス戦の有効な戦力 
A 5 からね。 

•溜まった敵をマシンガンで撃っときは照 
準を左右上下に振りながらだと効果的。 

マィナーァ■ベトドゲー厶の移植大賛^ 

見た目が派手なだけの内容のない新作に, 
テーブルを譲った数多くの名作ゲームたち……。 
こういったマイナー ァーケー ドゲームの X 6800 
0への移植は(まぁいろいろ意見もあるだろう 
が)私は 大 賛成だ。お気に入りのゲームだった 
のに,ゲームセンターから突然姿を消してし 
まったゲームが沢山あるのだ,私には。 ヘルツ 
さん……,次は「ぶたさん」「ワンダーモモ/ラ 
ビオレブス/ダーウィン」あたりを移植してく 
ださいよん,ゴロニゃん,うふん。 

• 総合評価 〇_5_10 

ゲーム性 ★★★★★★女 

操作性 ★★★★★★女 

サウンド ★★★★★ 

グラフィック ★★★★★★女 

難易度 ★★★★★★ 

ムキムキ度 ★★★★★★★★★★ 


THE SOFTOUCH 89 
























戦え! 7卞遠のライバルたち 


Komura Satoshi 

古村聡 


PC -8801 版で人気を博した ゲームの 移植版。が,もちろ 
ん このゲームの ウリである ビジュアル やキヤラクターグラ 
フイックは X 68000 用に新たに描き起こしたもの。ジョイ 
ステイックやマウスにも対応している。 


>エメラルドドラゴン 



「ゆ,許さんぞ!オストラコン!」 

「ほう,許さなければどうする? 俺は以 
前とは違うぞ,かかってきてみろ!」 

くう一っ,燃えるぜ。ついに出た出たやっ 
と出た,エメラルドドラゴン,通称エメド 
ラの X 68000 版がこのたびグローディアか 
ら発売になったのです。思えば PC -8801 
版が発売になってから1年余り。長い年月 
でありました。しかしながら,待った甲斐 
あってしっかりとグレードアップして登場。 
うるうる,生きててよかった……。 

え 一, このエメドラは,いわゆる RPG と 
いわれるやつなのですね。しかし,しかし 
だ。こいつをそんじよそこらの RPG だと 
思っちゃいけない。主人公のアトルシャン 
(こいつが人間じゃなくてドラゴンなのだ, 
実は),ヒロインのタムリン,そしてその仲 
間たちの友情あり涙あり,アニメーション 
あり,美形のライバルキャラありと少年マ 
ンガもビックリのああ,浪速節 RPG なのだ。 

さあ,とくとご覧あれ(ベンベン)。 

大丈夫,君を守ってみせるよ ♦♦♦♦毎 

いま,アトルシヤンの目の前にタムリン 
がいる。温かいティーカップを口に運びな 
がら,彼は彼女のことを,そして昔一緒に* 
過ごした日々を懷かしく感じていた……。 

彼女は幼いときアトルシャンのいるドラ 
ゴン小国にやってきた。ドラゴン小国に迎 



り着いた難破船の唯一の 生き残りとして, 

だ 0 そしてドラゴンである アトルシヤンと 
一緒に,人間の タムリンは育てられたのだ。 
が,やがてタムリンはイシュ•バーンに帰 
つていく。タムリンを心配したアトルシヤ 
ンは,彼女に自分の角を折って角笛として 
渡したのだった。なにかあったらこれを吹 
いて,いつでも君を助けにいくよと……。 

それから3年の後。アトルシヤンはタム 
リンの吹く角笛の音を聴いた。だから彼は 
彼女を守るために遥かなる次元の向こう側, 
そしてドラゴンにとっては呪われた地であ 
るイシュ•バーンへとやってきたのだ。 

タムリンの口がゆっくりと開く。 
「どこからかこのイシュ.バーンへ魔将軍 
オストラコンの率いる魔軍がやってきたの。 
いまやイシュ.バーンは落城の危機にさら 
されて……。明日にもここに侵攻してくる 
かもとみんな恐れおののいているわ」 

「……なるほど。タムリンとしてはほって 
はおけない,というわけか。しかし女の身 
で戦うとなれば相当の覚悟が必要になるぞ。 
悪くすれば死ぬかもしれない」 

わざと表情を変えないように,そして夕 
ムリンの顔を見ないように彼は続けた。 

「……魔族に殺された連中は死んでもなお 
生きるんだ。死霊ってやつさ。俺はやだね」 

タムリンと目を合わせる。タムリンはア 
トルシヤンをはたこうとしたのか手を上に 
挙げていた。そして大きく息を吸って手を 
下ろし,いかにも落ち着いているふうにい 


X 68000 用5 "2 HD 版6枚組9,800円(税別) 


グローディア 


303(3820)5226 


った。が,息がふるえているのがわかる。 
「いい わ。もうあなたには頼まないわ。私 
ひとりでも戦ってみせる!」 

予想どおりの答えにアトルシヤンはなん 
だかちよっとおかしいような気さえした。 
「悪かったよ,タムリン。君の決意のほど 
を試させてもらっただけさ。もっとも君が 
そう答えるのは初めからわかってたけどね」 

「……それじゃあ……」 

こうして彼らの危険な旅が始まったの 
だった。魔軍を倒すカギはただひとつ,ア 
トルシヤンが白龍から聞いたエメラルドド 
ラゴンの謎,だけだ。でも大丈夫だよ,夕 
ムリン。俺は君を守ってみせる,必ず,ね。 
心の中でアトルシヤンはそうつぶやいた。 

システムはストー 1 J 一と共に ♦♦♦♦ 

このゲームは RPG ですが,最近流行り 
の ARPG と違ってマップ上を敵キャラが 
チョコマカ歩き回っているわけではありま 
せん。自分が歩いていて敵と出会うと画面 
が切り替わって戦闘画面になるのです。 

戦闘は敵キャラとマイキャラのパーティ 
の俯瞰図になり,チョコマカと2頭身のキ 
ャラたちが動き回って戦闘してくれます。 
動かせるのはマイキャラのみ。あとのキャ 
ラたちは自分の意志 (?) であっちの敵を斬 
りにいったり疲れて戻ってきたりします。 
また,レベルに自信があれば自動戦闘も可。 
それでもどこぞの“ガンガンいこうぜ”と 
かやる AI 戦闘なんぞよりよっぽど賢い。 


戦闘シーン。ザコでもなんでもぼてくり 



これが街の中 c よつ! 市民 A , 元気かい? 


HE SOFTOUCH 


:, H-VH tH 

11*/ 1 r* 


L • ♦'Acrcf • • 

/ H -/H prH o H 

#“. ♦■.•• 命 J 


90 Oh! X 1991.2. 




































おおっと,レベルの話。この ゲーム, 基 
本的にアトルシャン,タムリンも含め5人 
のパーティで行動するのですが,実はその 
なかで戦闘を行ってレベルが上がっていく 
のはアトルシャンとタムリンだけなのです。 
では残りの3人のヒットポイントの最大値 
やストレングスは?そう,固定されたま 
まなのです0じゃあどんどんレベルの上 
がっていく敵にどう対処しているのかとい 
うと,シナリオが進むにつれてドラマが展 
開されながらメンバーが入れ替わり,旅を 
続けていくという方式が取られているので 
す。要はメンバーがどんどんチェンジして 
いくわけなんですね一。いやあ,すごい。 

7卞遠のライ八ルたち! ♦♦♦♦♦♦♦♦ 

アトルシャンたちが初めて敵の魔将軍才 
ストラコンと出会ったのは魔軍前線司令部 
だった。オストラコンは天才的策略家,し 
かも冷酷非情な男である。 

「オストラコン! 覚悟っ!!」 

アトルシヤンはそう叫ぶとオストラコン 
が身構えるより早く斬りかかり彼の右腕を 
切り落とした。 

「ぐごあわ!俺様の右腕をよくも!」 
しかし,彼は部下の助けで命からがら逃 
げ出していたのである。 

しばらくの時が過ぎた0元フラワルド伯 
爵邸にオストラコンがいると聞いて急襲を 
かけたアトルシャンたち。 

「オストラコン!!」 

7 トルシャンが剣に手をかけようとした 
その瞬間2匹の魔物が彼らの前を遮った。 

「ココ ヲト オスワケニハイカン!」 

オストラコンは薄笑いを浮かべてこちら 
を見ている。はっ,とタムリンが息を飲ん 
だ。なにかに気づいたらしい。 

オストラコンの右腕だ! 

切り落としたはずの右腕,それは明らか 

ぐいぐい引っ張ってくれるのだが…… 

遊んでもらえるゲームを,ということをよく 
考えて作られたゲームだと思う。アニメシーン 
をつけることで「早く次のグラフィックが見た 
い」と思わせる。相談コマンドで「次はどこど 
こへなになにしに行くべきだ」とほかのキャラ 
クターが教えてくれる。これで次の目標をプレ 
イヤーに教える。エンディングへ向けての引力 
があるといってもいい。スタッフの頑張ってい 
る姿が目に浮かぶようだ。 

ただひとつ難をいえば,少々ゲームの作りが 
荒っぽいように見えてしまうことだ。たとえば 
戦鬪中のメッセージで「残念,逃げられない!。」 
と“!”のあとに“。"があったり,ハスラム 
がファルナにいうセリフなのだが「顔色がうか 
ない」などという不思議な日本請があったりす 



宿敵オストラコン。 う一ん,美形だなあ . 



ああ,水晶に捕らえられたハスラム。いい構図ね 


にこの世のものとは思えぬものだった。魔 

性 . 。オストラコンはアトルシヤンたち 

に復饗するために魔に魂を売り渡したのだ。 
「侍っていたぞ……」 

オストラコンが静かにいった。 

「オストラ コン!」 

「おっと。その前にこいつを見るんだな」 
ォストラコンが異様な右手を突き出す。 
その手のひらには不気味な黒水晶が……。 

「ハスラム!」 

ファルナが叫んだ。そう, エルバー ドの 
危機を聞いてパーティを去っていったハス 
ラム王子だ! 

ハスラムが黒水晶の中に閉じ込められて 


人公,強く冷酷な美形敵キャラとくれば, 
普段から少年マンガにどっ ぶり の方には必 
須のゲームですね。なんてっ たって最近の 
少年マンガは“絵がきれい” で “ヒロイン 
が超かあいい”というのが必須条件ですか 
ら(たとえば“ああっ女神さ まっ!’’と力> “ 3 
X 3 EYES ” とか……,でしよ?)。 

このゲームの最大の特長は,やっぱり グ 
ラフィック。これがなんてったってディス 
ク6枚組のうちオープニング, エンデ ィン 
グ,ビジュアル A / B の 4枚が グラフィッ 
クデータだという 力の入れよ う'なのです。 
もう店頭デモな どでご覧に なっているでし 
よう力 ? , グラフィックは非常にきれいです。 


いるのだ! 


それにヒロインのタムリンも見目麗し〈愛 


「見てのとおりお前らの大切な仲間は俺様 
が預からせてもらった……。この小僧が助 
かるも助からぬもお前ら次第だ。」 

「なにが望みだ,オストラコン!」 
「お前たちの命 . 」 

少年マン通つっぱしる RPG なのだ! 0 

という感じで,ドラマはアトルシャンと 
魔将軍オストラコンの戦いを中心に描かれ 
ていきます。そして,このストーリー展開 
こそがグラフィックと並んでプレイヤーを 
前へ前へと進ませる吸引力を作っているわ 
けです。かわいいヒロイン,それを守る主 


るのだ(これは「顔色がよくない」「うかない顔 
をして」のどちらかが正解だろう)。ささいなこ 
とだし,作った人たちは決して雑に作っている 
つもりはない。いや,できるだけ真剣に作って 
いるはずだ。でなければこんなに売れるゲーム 
に作れるわけがないのだが,そのように見えて 
しまうのも事実なのだ。 

これだけ売れてしまうといろいろとプレッシ 
ャーもかかり大変だろうが,次回作でぜひこの 
ようなことにも気をつけて頑張ってほしい。 

総合評価 〇_5_10 

お手軽度 ★★★★女 

ストーリー展開 ★★★★★女 

自動戦闘モード ★★★★女 

ミュージック ★★★ 

タムリン ★★★★★★★★★女 

おすすめ度 ★★★★★★★★女 


らしくかあいいかあいい本当にかあいいの 
だ! ぐふふふふ,じゆるっ(こらこらっ)。 

ご存じのようにこのゲーム, PC - 8801 
版からの移植なのですが,グラフィックも 
そのままもってくるような横着はしないで, 
ちゃ一んと X 68000 用に描き直してくれて 
いるのでした。ちょっと PC -8801 版と絵 
の感じが変わったところも多いです力す,決 
してグ 、レー ドダ、ウンということはありませ 
ん。ちょっとオープニングは顔が丸っこく 
て,ゲーム中のグラフィックは縦に長くな 
っちゃってるな 一, という気もしますけど。 

とにかくヒロインがかあいい,美形の敵 
キヤラがいる,そしてアニメーションと最 
近の流行りをばっちり押さえた少年マンガ 
道をつっぱしってるゲームなのです。 

なにはともあれ,このゲーム,実は結構 
時間のかかるゲームなのですが(まあ,あ 
れだけのストーリー展開がありますからね。 
しかたないっちゃしかたないでしょう), 
ひとつ間違えばただマップがだだっぴろい 
だけの退屈なゲームになるところを,うま 
く見せ場を盛り込み時間がたつのを忘れさ 
せてくれます。移植も完璧ですし期待を衷 
切らないという意味ではまったく感謝した 
いくらいの出来でしたね。休みなんかにど 
うですか? 絶対おすすめ,イチオシのゲ 
ームですよん。 


THE SOFTOUCH 


91 



























HE SOFTOUCH 




テ—ブルト—クの本家,いよいよ登場 

ISii/Sl 

Kameda Masahiko 

亀田雅彦 

1 月海」の北側の地には 1 フフン」こいつ数干牛前に瑕盟 ; 
期を迎えた都市が存在していた。「新市街」の「評議会」 

を中心とする人間の軍と「旧市街」の「邪悪」な軍が対立 I 
するなか,新生「フラン」を再興するのだ 0 

: . 'm:- ”一 ふね ^' 以 ^^ 警ビ 

一 ' — : • ■ 11 一 V —' 


久しぶりのレビューで,いま猛烈に緊張 
している。いつもの「ですます調」文体ま 
で忘れちまった。ふっふっふっ,どんな 
ゲームでも相手になってやる。 

今回の相手は AD & D ® (Advanced Du 
ngeons & Dragons ) から 「POOL OF R 
ADIANCE 」 た ^ これは,アメリカで大 
ヒットした(と,ものの本に書いてある) 
AD & D ® をパソコンでパクった (?) ゲー 
ム。みんなでワイワイやるテーブルトーク 
を,ハ。ソコンを使ってひとりで遊べるよう 
にしたってわけ。なにしろ AD & D ® といえ 
ば,日米共にその筋で知らぬものなし。而 
白さは保証つき。あとはいかにコンピュー 
夕化したか?ってことだけが気がかりだ 
ね。そこで今回のレビューは,ガンガン! 
本音で勝負しようと思っている。辛辣な表 
現も出てくるかもしれないがそこはご容赦 
願いたい0 

さて,まずはシナリオの面白さを知って 
いただこう。いまあなたはパーティを組ん 
で,ある使命を遂行しようとしている。題 
して, 

墓地に閱夜が迫るとき,ァンデッドが甦る 
〜失われた英雄伝説〜 

このヴァルヒンゲル墓地の掃討を依頼さ 
れたとき,パーティの中には反対するもの 
もいた。魔術師のサマンサはアンデッドを 
恐れ,盗賊のドロキチは「墓荒らしは趣味 



XI turbo 用 5〃2 D 5 枚組9,800円(税別) 
ボニー キヤニオン 003(3221)3161 


じゃない」と言った。しかし,僧侶のボー 
ズは退散呪文にいささかの自信があり, 
「アンデッドごとき敵ではない」と豪語し 
た。戦士 KAME , ドーイもその言葉に勇 
気づけられて,この話を受諾したのだった。 

パーティはこの時点で5人。歴戦のなか 
で,3人が帰らぬ人となっていた。我々は 
町の訓練場で2人の傭兵を雇うことにした。 
彼らの名前はヒーロー兄弟。傭兵の中でも, 
最も強い兄弟だ。我々の戦士らと同等のレ 
ベルはある。かなりの年のはずだが,力強 
さは若者に負けず,かなりの修羅場をかい 
くぐってきたはずだ。めったに表情を変え 
ず,無駄なおしゃべりもしないので,それ 
以上のことはわからなかった。 

隠された聖綺士の謎 ♦♦♦♦♦♦♦♦ 

墓地にはさまざまなアンデッドモンスタ 
一がいる。アンデッドモンスターはより上 
級なモンスター(スペクター)によって召 
還されている。スペクターをやっとの思い 
で倒すと,スケルトンやゾンビなどの下級 
モンスターは召還されず,もはや墓地には 
いないようだった。 

そんなとき,パーティは十字架の形をし 
た大理石の納骨堂を見つけた。そこには… 
…はるか昔の聖騎士伝説が累々と記されて 
いるではないか! 我々は慌ててその巻物 
を読んだ。 

「無敵の名をほしいままにしていた戦士 
がアンデッド退治のため墓地へ入った〇し 
かし,彼はついに帰らぬ人となった。 

彼の弟もまた聖騎士であった。兄の仇と 
ばかりに,女祭司長の力を借り墓地へと乗 
り込んだ。何千年も生きてきたバンパイア 
の魔力は想像を絶するほどだ。しかし,彼 
らの聖剣,魔法を込めたメイスは,ついに 
バンパイアを仕留めた。その断末魔の叫び 
は墓地全体に»いたそうだ」 

パーティは読み終わった巻物を静かに置 
くと,あとずさりするように建物を出た。 
記述にあるバンパイアに恐怖を抱いたのか 


もしれない。 

最後の死闘 ♦♦♦♦♦♦♦♦♦♦♦♦♦ 

力す,しかし,その恐怖はすぐに現実のも 
のとなった!!我々が建物を出た瞬間,空 
間に巨大な魔力が集中する。身ネ算える間も 
なく,集中した魔力は青白い顔の男へと姿 
を変えていく。 

バンパイ アのわきには2匹のウルフがい 
る。こいつらも魔法を使うようだ。 

我々は皆,死を覚悟した。と同時に,興 
奮する自分を感ぜずにはいられなかった。 

ボーズが退散呪文を放ったがまったく効 
かない。レベルが足りないのか? 

バンパイアの右手が上がった。ウルフは 
ファイアーボール(火:暴発)の呪文を投 
げつける。火炎は僧侶,盗賊,戦士を飲み 
込んだ。3人はとてつもないダメージを受 
け,ほとんど即死した。 

残った戦士3人はバンパイアに攻撃を集 
中するため,敵の真正面に立った。バンパ 
イアの左手が青白〈輝く。その手に触れら 
れた戦士は急速に痩せ細った。そして,つ 
いにその存在自体が消滅してしまった。生 
命力を奪われたのだ。もうひとりもウルフ 
と相打ちに。パーティの残りは2人。敵は 
バンパイアとウルフ1匹。 

サマンサは以前の冒険で,ワンド•オブ • 
ライトニングボルトを手に入れていた。そ 
れはその強力さゆえに,一生使わないと心 
に誓ったものだった。 

ワンドを手にすると,白い稲妻が衝撃波 



この番号をマニュアルで参照してと,フムフム 


92 Oh! X 1991.2. 





















t なって空間を切り裂き,バンパイアの体 
に衝突した!そしてその体を突き抜け, 
ウルフを壁に叩きつけた。 

しかし,バンパイアは生きていた。一瞬 
の スキをついてマジックミ サイ ルを 放って 
きたのだ。なすすベもなく戦士は倒れた。 

さらに,ライトニングボルトとマジック 
ミサイルが同時に放たれた。墓地の闇は真 
っ白に染まり,ものすごい量の魔力が解放 
された。そして,そのあとには……。 

ホ氺ホ 

私は眩いた。「あれ,どこまでセーブし 
といたっけ?」 

グームシステム ♦♦♦♦♦♦♦♦♦♦♦♦ 

いままでの話はゲーム中にいくつかある 
タエストのひとつ。しかも,かなり簡略化, 
脚色してある。でも,ゲームバランスのよ 
さ(難しすぎず,簡単すぎず)や,シナリ 
才のドラマ性は伝わっただろう(?)。 

さて,それではこのゲーム本体の説明を 
しよう。あなたはまず8人以内のパーティ 
を組む。そしてフランという町の評議会に 
行き,仕事(たとえば,「墓地を掃討せ 
よ」など)をもらう。その仕事自体がタエ 
ストになっていて,解決すれば報酬がもら 
えるし,冒険中にも宝を発見できる。また 
そうした仕事をこなしていくうちに,いろ 
いろな手掛かりを見つけてフランの謎を徐 
々に 解いていく。 

このゲームの 特徴や面白い点を列挙して 
みょう。 

•シナリオ,およびイベントのバランスが 
とれている 

ゲーム全体の謎解きと個々のクエストの 
関わりがはっきりしているので,ゲームの 
進行に無理がなく,飽きさせない。 

•細かいメッセージなどに気配りがある 

キャラクターをパーティから外すとき, 
「安堵の溜息をついた」「別れを告げた」「放 
り出した」など状況によってメッセージが 
違う。パーティの行動制約も少なく,少し 
でもテーブルトークに近づけようとしてい 
る努力を認めたい。 



せっかくいい気持ちで寝ていたのに 



墓地の中は寒いので,あたりは銀世界? 


この ゲームで 忘れ ちゃい けない存在は, 
NPC (ノン•プレイヤー •キヤ ラクター) 
だ。先の例では「傭兵」と書いたが, NP 
C はまさにそんな感じだ。冒険途中でハ°一 
ティに入る奴もいる。強い奴,弱い奴,ま 
た,敵なんかもいて, NPC の 存在はこの 
ゲームの 差別化にひと役かっている。また 
戦闘時の戦略にも欠かせない(なぉ, NP 
C の 行動は コンピュータ が行う)。 

•かなり洗練されたゲームである 

すべての操作がテンキー(ジョイスティ 
ックでも可)オンリーのメニユーセレクト 
方式。ディスクアクセスを最小限に抑えよ 
うとする努力も見受けられる。かなりのテ 
ストプレイを積んだとみた! 

•種類が豊富 

キャラクターには人生観まで設定できる 
し,顔,体,戦闘時のアイコンまで変更可 
能(男の顔に女の体はぶっき一)。武器も 
かなりあるし,持ち物の重量や貨幣といっ 
た本家の細かい設定を忠実に再現している。 
それが面倒臭さにつながってないことが, 
感情移入にプラスに働いている。 

とりあえず印象に残ったものを書いてみ 
たが,結局 「 AD & D % と「プログラムの 
気配り」の2つが特徴だと思う。 

続いて「これはアカん」と思う点。 

鲁ディスクアクセス 

戦闘が始まるときにガーガー,終わると 
きにもガーガー。アクセスの多さはしかた 
ないとしても,そのスピードが遅い。ぉま 
けにデイスク5枚組 (+ ユーザーデイスタ)。 



こいつが墓地の親玉,バンパイア 


2 HD ディスクも入れるとか,バンクメモ 
リ, EMM を使うとかの気配りがほしかっ 
た(いいゲームだけに残念)。 

•プロテクト 

翻訳 デイ スタなる マニュアル プロテクト 
があり,起動のたびにパスワードを入力す 
る。ゲーム中にもこのパスワードを使う場 
所がある。面倒臭さが増しているだけで, 
正規 ューザーに メリ ッ トがない。 

ほかにゲーム中の重要なメッセージが別 
マニュアル になって いる (これは単なる容 
量の問題でプロテクトじゃないと思うけ 
ど )0 つまり,ゲーム中に「何番の文章を 
見ろ」というメッセージが出る 0 プレイヤ 
一は別 マニュアルの 何番を見て,その状況 
を把握する。これは「画面のメッセージを 
書き写さずにすむ J などの理由で便利だ。 
これはほかのゲームでも参考にしてほしい< 
籲フラン市街の外に出るとやる気を失う 

「クエス トの目標がはっきりしない」,「や 
たらとモンスターに出会うので,前に進め 
ない」という理由で外のタエストはとても 
やる気になれない。ただし,フラン市街だ 
けでも普通の RPG 1本分は楽しめる。 

やっぱりデイスタアクセスが問題かな。 

これらをプラス,マイナスした結果,私 
はプラスの評価をしたい。 Xlturbo でこ 
こまでの仕上がりは,注目に値する。特に, 
プログラム技術をウリにすることなく,あ 
くまで「楽しめる」という視点からゲーム 
を作る姿勢がいい。この「ゲーム性を重視 
したゲーム」精神を大切にしたい。 


テーブル ト ークは 面白い 


「 XI のゲーム」というだけでめずらしい昨 
今。出るだけでもありがたく,ゲームの善し悪 
しを判断するのも難しいが,8ビットパソコン 
上のゲームとしては,かなりよい出来である。 

16ビット以上も含めた RPG ゲームー般から見た 
場合は,普通のレベルだと思う。 

しかし,ここで注目したいのは,最近の RPG 
の動向だ。近頃,特に“ドラクエ"タイプの小 
さいキャラがチョコチョコ走り回るものが多い。 


ムは,大人向け(オタク向け?)の本格派とし 
ての価値がある。 

あとひとつ。 Xlturbo 用なら400ラインディス 
プレイ専用にして,漢字をちゃんと表示してほ 
しい。せっかくの漢字 VRAM が泣くぜ。 

総合評価 f ^_1,0 

シナリオ ★★★★★★★★女 

グラフィック ★★★★★★女 

音楽 ★★★★★★女 


正直言って,あのテの RPG は私は感情移入でき 操作性 ★★★★★★★女 

ないのでパス。それとは正反対をいくこのゲー 快適度 ★★★★女 


THE S 0 FT 0 UCH 


93 




























HE SOFTOUCH 



►キャラクターがでかいだけあって,迫力 
がある。マテイアス VS ゼラーなんてすごす 
ぎて感動した。力す,最後の敵をもう少し強 
<してほしかった0それに,ムーンブレイ 
ドなしで倒せるのはなんとかして! 


= : 


X 68000 オンリーのソフト ハウス,ズーム 
は,前作のジヱノサイドの出来がよかった 
こともあり,かなり注目されているようで 
す0さて,アクション RPG となった第 2 作 
「ラグーン j の反響はどうでしようか? 


笹倉英昭 (15) 兵庫県 

►ストレスを感じさせない,実に スムーズ 
な進行0ここに ズームの 14 力 月のこだわり 
を感じる。また,例によってのディスクエ 
ンべロープの 心づかい。涙。 

西本英樹 (18) 北海道 
►絵,音,動き,ともによくできていると 
思う。これで4方向じゃなくて,8方向だ 
たらもっとよかった。敵は弱いけど終わ 
ないゲームよりはよっぽどいい。 

安永吉徳 (21) 長野県 
「X 68000オリジナルゲームはムズイ」と 
うのを打ち破ってくれたもんね。けど, 
簡単すぎたかも……。計10時間ほどでタリ 
アできたもんね。澤田裕史 (15) 神奈川県 
►ホホホ,やっとラダーンが出た。エンべ 
ロープの“ネコ”が楽しみで買ったのだが, 
X 68000 にしてはめずらしく最後のボスが 
弱い。また,もっと 「 X 68000 ならでは」と 
いうのがほしかったが,魔法がハデでいい。 
エンディングは最高だ。あと,なんかイー 
ス II ににてるぅ〜。宮前龍也 (15) 東京都 
► 9月15日の午前に買ってきて,午後1時 
からやりはじめた。そして8時間後,エン 
ディングを迎えていた。いろいろ演出があ 
り,まあまあ遊べた0しかし,ムーンブレ 
イドを取らずにソア(最後の敵)を倒して 
しまい,啞然とした。石川洋 (16) 愛知県 



94 Oh! X 1991.2. 



►凄まじいまでのグラフィックと役に立た 
ない金。いまいちの難易度。やたら派手な 
魔法と いい, 行方不明のライ麦パンと いい, 
なかなか面白い (5 番目のリングはどこに 
ある?)。 井上和也 (21) 福岡県 

►キャラクターが大きいのはいい。しかし, 
なんのための剣の振りかわからない。もう 
少し ズームには がんばってほしい。そう思 
いませんか。それにジャンプもひどい0 

米倉正人(23> 長野県 
►先日,侍ちに侍った「ラグ’ーン」をやっ 

た。感想はひと言,「あっけな L . 」であ 

る0前作の「ジェノサイド」が“超”難し 
かったため,このギャップの大きさにびっ 
くりしている c 普通にブレイしていれば1 
日で終わることも可能だ。もっと長く遊べ 
ることを期侍していたのですが……。グラ 
フィックや音楽はきれいでしたが,あまり 
にも簡単すぎたなあ。 

山本昭治 (22) 神奈川県 
►ビジュアルシーンなどは圧巻で,プレイ 
には気合いが必要とされないところがいい。 
い。とにかく音楽が気に入った。 

羽田茂樹 (20) 愛知県 



力の入ったオープニングシーン 





























AFTER REVIEW 



最初のほうのシーン,洞窟のそばで人が • 



►魔法は派手だが,見せるだけでたいして 
意味がなくてはがゆい。 

鈴木克史 (17) 静岡県 
►よ〈できたゲームでもたいていなかだる 
みのようなものがある。ラグ ーンの 場合の 
問題はそのなかだるみがいきなり前半にき 
ちゃうことね。後半の盛り上がり方がすご 
いと間いてもう一度続きをなってみる気に 
なったけど,最初は2匹目の ボスの 前ぐら 
いで面倒臭くなってほかのゲームに浮気し 
ちゃった。だって,敵(ざこ)は弱いくせ 
に無意味にカタイし,進行が単調。ついお 
ざなりにプレイすると,死んじやうし。も 
ちろんグラフィックがきれいだったし,操 
作性も抜群だったけど(多重 スクロールの 
通路はおっこちそうでドキッ〉。きっとみん 
なもズームだからと信じて先へ進んだんじ 




落っこちそうでこわい 


ゃな あい? 結果的には話題を集めるだけ 
のことはあったと思うんだけど,次は最初 
から ハラハラ ドキドキの展開が続く ゲーム 
がやりたいよお。 ズームなら! 信じられ 
る!? 七瀬由美子(19> 神奈川県 

ラダーンの場合,やはりグラフィック, 
音楽,そして,オープニングデモやエンデ 
ィングがいいという意見が多かったようで 
す。しかし,肝心の ゲーム 内容に関しては 
賛否両論。演出もすばらしい,という意見 
もあれば,問題あり,という意見もありま 
した。まあ,やっぱりいちばん多かったの 
は,イースなどに似ているという意見か 
な? しかし,ほめているにしても,けな 
しているにしても,皆さんの ズームに 対す 
る期侍はあいかわらず大きいようでした。 


X 68000用 5"2 HD 版4枚組 8,800円(税別) 
ズーム 0011(613)0191 


ミュージックモード発見 


長野県にお住まいの松沢宏治さんほか数名の 
方からラグーンのミュージックモードへの入り 
方についてのお便りをいただきましたので紹介 
します。 

まず,普通に立ち上げるとデモが始まり,そ 
のあとユーザーディスクあるいはシステムディ 
スクを要求してきますよね。そこで,データデ 
ィスク3を3回以上,2を2回以上入れます c 
そして,そのあとシステムディスクを入れると 
OK というわけです。 



発売中のソフト 


★ワールドスタジアム SPS 


X 68000 用 5"2 HD 版2枚組8,800円(税別) 

★アトミック • ロボキッド システムサコム 
X 680 D 0 用 5〃2 HD 版2枚組8,800円(税別) 

★ラプラスの魔 


エム • エー . シー ハミングバード 

X 680 Q 0 用 5"2 HD 版3枚組8,700円(税別) 


★ Magical Shot M . N.M Software 


X 680 Q 0 用 5"2 HD 版7,800円(税別) 

★サークレジェンドスペシャル マキシマ 
X 680 Q 0 用 5"2 HD 版4枚組8,800円(税別) 

★スライス M . N.M Software 


X 680 D 0 用 5〃2 HD 版7,800円(税別) 

★大航海時代 光栄 

XB 8000 用 5〃2 HD 版2枚組9,800円(税別) 

★ KLAX ハドソン 


X 680 ()D 用 5"2 HD 版7,700円(税別) 

★プール•オブ • レイデイアンス 
ボニーキヤニオン 


Xlturbo 用 5"2 D 版5枚組9,800円(税別) 


新作情報 


★ D 〜欧州®気楼〜 ウルフ•チーム 

X 6 8 000 用 5〃 2 HD 版 3 枚組 12 J 00 円(税別) 

★ RYU 〜哭きの竜より〜 ウルフ • チーム 


X 68000 用 

5"2 HD 版11,600円(税別) 

★DRAKKHEN 

EPIC/SONY RECORDS 

X 68000 用 

5"2 HD 版価格未定 

★アルガーナ 

M . N.M Software 

X 68000 用 

5〃2 HD 版6,800円(税別) 

★ Misty Vol .7 

データウエスト 

Xlturbo 用 

5〃2 D 版5,000円(税別) 

X 68000 用 

5〃2 HD 版 5,0 D 0 円(税別) 

★マーブルマッ 

ド ネス ホ ームデータ 

X 68 Q 00 用 

5"2 HD 版価格未定 

★ファンタジー IV スタークラフト 

X 68 Q 00 用 

5"2 HD 版9,800円(税別) 

★中華大仙 

シャープ 


X 68000 用 

5"2 HD 版 

価格未定 

★エイリアンシンドロ 

ーム 電波新聞社 

X 68 Q 00 用 

5〃2 HD 版 

価格未定 

★プリンス • オブ • ペルシャ 


ブロダーバンドジャパン 


X 68000 用 

5"2 HD 版 

価格未定 

★パロディウスだ1 

コナミ 


X 68 Q 00 用 

5"2 HD 版 

価格未定 

★生中継68 コナミ 



X 68000 用 

5"2 HD 版 

価格未定 


★遥かなるオーガスタティーアンドイーソフト 
X 68000 用 5"2 HD 版2枚組12,8(]0円(税別) 

★ノスタルジア タケル 
X 6800 D 用 5"2 HD 版11,8110円(税別) 

★ブラックレインボウ ホビージャパン 

X 6800 D 用 5〃2 HD 版8,800円(税別) 

★ボンバーマン システムソフト 

X 680 DD 用 5〃2 HD 版7,800円(税別) 


THE S 0 FT 0 UCH 


95 



























大人のための X 的1100 


FIXER ver.4.0 


Ogikubo Kei づ ■」■ 

先月はちょいとばかり時事ネタを扱った 
ので,今月は馬場ネタを扱う。大腿部骨折 
だそうである。アナウンサーが選手生命に 
影響云々をいっていた力す,選手として戦っ 
ていたこと自体,選手生命を縮めていたよ 
うなものだったから,いまさらなにをかい 
わんや,である。 

なんて話はどうでもいい。 

そういえば,かの NTT が12月1日から 
ANGEL LINE を始めた。エンジェルであ 
る。恥ずかしい名前だ。遊人の ANGEL にで 
もあやかろうとしたのだろう力、(なににあ 
やかるんだか)。 

先立って ANGEL NOTE なる恥ずかし 
い名前で紫という恥ずかしい色の機械を無 
料貸し出ししたそうた^ ANGEL NOTE っ 
てのは ANGEL LINE へアクセスするため 
の単なる端末である。それ以上でも以下で 
もない。 

いい忘れたが , ANGEL LINEt いうの 
は NTT が始めたパソコン通信を利用した 
電話番号検索システムである。ただ,アク 
セスには ANGEL LINE 専用の通信ソフト 
を使うことになっている。そのソフトだ力す, 
PC -9801, J - 310 0, AX など MS - DOS マシン 
用はあるのだが, X 68000 用はない。いつも 
のこととはいえ, X 68000 用はない。 XI も 
MZ もない。 

じゃあダメかというと,なんのことはな 
くて, パソコンと モデムとそんじよそこい 
らに転がっている通信ソフトがあれば誰に 
でも利用できるのだ。 

ちなみに,電話番号は0190 -104104 という 
変な番号0プロトコルに閨しては,1200/ 
2400 bps というなんの変哲もないものだ。 
が。ひとつ問題があるとすれば,全角文字 
のコードが新 JIS なの だ。シフ ト新 JIS ではな 
くて,ただの新 JIS 。 ソフトが対応していれ 
ばまったくもって,気にすることはない。 
96 Oh!X 1991.2. 


どうしてシフト JIS じやないのかなあ。ホス 
卜側の機械のせいだろうか。 

まあ,いいや。それにしても,104が機械 
の声になって,有料化したと思ったら,今 
度はバソコン通信で番号案内ときたもんだ。 
私はあの,機械の声の104は苦手で苦手で。 
知らない人のため f こいっておくと, いまの 
104はかけるとお姉さんが出て,こっちが言 
ったところの番号を探してくれるのだが, 
見つけたら,「はい,どうぞ」とかいって, 
機械の声が延々と電話番号を繰り返し言い 
続けるのだ。おお,不気味。さっさと電話 
を切れば いいの だが,最初からテープが回 
っている天気予報や時報ならともかく,始 
めは人の声なのに唐突にテープか 1 C か知 
らないが機械の声になって,相手がしゃべ 
りつづけているなか,受話器を置くという 
のは非常にいやな気分がする。 

というわけで , ANGEL LINE は便利だ。 
人間相手より融通はきかないが,こちらも 
機械的に応対できるから気が楽。企業か, 
官公庁か,個人か,フリーダイヤルかで選 
ベる。ただ,プライバシーの問題か,「個人 
は5件,それ以外は50件に絞られたときに」 
表示してくれるそうで,ありふれた名前だ 
ったりすると,かなり細かいところまで入 
れてやらないとだめ。また,電話帳に載っ 
ている人しかだめだから(当たり前)私の 
電話番号は検索できるが(ついでに住所ま 
で! ) ,街でナンパした女の子なんかは電話 
帳に載せてないケースが多いので,たぶん 
だめだろう。あ,いっておくけど,私は「荻 
窪圭」なんて名で載っているわけではない 
ので,探さないように。 

所在地がある程度絞れないとだめな点を 
除いて,もうあの電話帳はいらないという 
メリットは大きい。料金は3分10円で,深 
夜23時以降は4分10円と,すばやく探せば 
1件30円の有料化104より安いのも魅力だ。 


[第5回] 


今月の「大人のための X68000」 は新しい 
FEP「FIXER ver.Oj の話。 ASK が 
気に入っている人もいれば,不満点があり 
ながらもしかたなく ASK を使っている人 
もいるでしょやはりどんなものにち選 
択の余地というのは存在すべ吉ですよね。 

モデムを持っている人はお試しあれ(詳し 
くは NTT に聞いてください)。 

ちなみに,私は NTT の回し者ではない 
ぞ。ただ,面白いと思ったから紹介しただ 
けなのだ。誤解しないように。私の基本姿 
勢は 「 NTT は諸悪の根源で,人のコミュニ 
ケー シヨン 願望に つけ 込んだ商売をしてい 
て,あの前時代的な電話料金体系は人々を 
馬鹿にしている」というものだ。 

さて,この調子で JR が時刻表をパソコン 
通信で検索できるようにしてくれると,と 
てもありがたいな。それいけ, JR 。 

ああ,関係ない話でこんなに行を稼いで 
しまった。 

FIXER ver.4.0 が来た 

と,先々月の予告どおりに Kamikaze の 
第3弾をお送りする予定だったのだが,突 
如届いた1本のソフトのおかげで,またもや 
予定が狂ってしまった。 

その届いたソフトがこの FIXER 。 今回の 
「大人のための X 68000」 は FIXERver .4.0 

のレビューだ0 

待っていた人は待っていた。だって ASK 
って馬鹿なんだもん。しょっちゅう同じ間 
違いを犯すし,何度教え込んでも文法解析 
が変なのかなんなのか,“浅い”って打ちた 
いのに,“浅井”が最初の候補になるくらい 
だから。 FIXER も最初は“浅井”だった 
が, 2度目からはちゃんと戋い’’になっ 
た。当たり前だけど,偉い。 

編集部にこの FIXER が到着して最初に 
驚いたのが,「ちゃんと学習する」ことだっ 
た。というより,学習するとはこういうこ 
とをいうの力、,っていう感心だ。 

たとえば,「庭に埴輪鶏がいる」ってなっ 
ても,「庭には二羽鶏がいる」って一度学習 
させてやると,「庭には二羽鶏がいる」って 








ならなかったけれど, 2度学習させたら, 
なった。すごいすごい。 

えっと,これは単語の学習と文節内の学 
習と,文節区切り学習など多くの学習をす 
る関係だと思う。庭には二羽鶏がいる。う 
一ん,完璧。 

この賢さは触ってみないとわからないの 
だが, ASK はもちろんのこと, AT 0 K 7 より 
も VJE -0 よりも賢いのは確かだ,といって 
いいのではないだろうか。もっとも,ある 
程度学習させてからの話だ。 

FIXER のキー配置 

そんな FIXERAT が,日本語 FEP の善し悪 
しは変換効率だけで決まるのではない。た 
とえば,操作性であり,ファイルの大きさ 
であり,アプリケーションとの相性だ。ま 
ず,操作性から見ていこう。 

一応 ASK に準じたキー配置をうたって 
いるが,本当にそうだろう力、。 

結論からいぉう。そうではない。 

1) XF 1, XF 2, XF 3 キーについてはシフト 
ともども似ているが,候補がなくなると自 
動的に文節を伸長してくれるなどめんくら 
うこともある。スペースが次候補してくれ 
ないのも異なる点だ 

2) XF 4 に関してはさらに異なる。一度押 
すごとに,かな一►カナ—*カナ(半角)を繰 
り返すのだ 

3) ASK では(たいていの FEP はそうだ 
が)変換中に次の文字を入力すると,未5萑 
定文字列は確定され,新し〈入力した文字 
が変換対象になる。 FIXER では確定するキ 
一を押さないかぎりどんどん未確定文字列 
が増えていく ( MAX 80 文字) 

4) ASK ver .2.0 はある程度キ ーコン フイ 
ギュレー ション可能だった。 FIXER ではキ 
ーコンフィギュレーションを 変えることは 
できない。ファンクションキーの役割も固 
定だ ( CTRL + F キーに収まっている) 

5) CTRL ファンクション がまったく効か 
ない。困った 。 CTRL ファンクションを 使い 
まくるどころか,ホーム ポジションから 指 
を 離さずに変換できるよう設定している私 
は,非常に困る。 CTRL + うんちゃらは,み 
な全文節確定とされてしまう。思わず 
CTRL+H を 押して,泣いたことがある。改 
良していただけるとうれしい 


まあ,慣れの問題かもしれない。 

ASK にはなかった機能もいくつかある。 

6) CTRL + XF 2, XF 3, XF 4, XF 5 の4つ。 
CTRL + XF 2 が記号入力。これがまたすご 
い。 JIS コード.000から部首が登録してあ 
り,部首変換ができるのだ 。 CTRL + XF 3, 
XF 4, XF 5 はそれぞれ,かな,ローマ字, 
CAPS LOCK の ON / OFF になっている 

7) SHIFT + ESC 。 これは直前に変換した 
文字列を再変換するというキーである。確 
定直後のみ効く UNDO 技だ 

以上が, ASK とは異なる操作性だ。が, 

まだまだ言葉ではいいづらい違いがいろい 
ろある。 

8) ローマ字に変換できない読みのとき, 
ASK だとアルファベットのまま残してく 
れたが ( WP などを除く), FIXER はそうい 
うことをしてくれない 

9) カーソル 位置変換にしたとき,変換作 
業の結果(文節伸長)が カーソル 位置に反 
映されないのは変だ 

こうやって比べてみると, ASK より使い 
づらそうだが,それは ASK に慣れているか 
らで, FIXER にしてみれば,ただ XF キーに 
対応しただけにすぎないのだろう。しかも, 
その ASK への慣れというのも,けっこう 
ASK の使いづらさをごまかすための対症 
療法だったりするので, FIXER に文句をい 
うのは筋違いなものもありそうだ。 

ただし,客観的に見て,次の点は許しが 
たいものがある。いくら賢くてもこれでは 
使う気にならない,というユーザーもいる 
だろう。 

a . CTRL フアンクシヨンカ ? 

確定キーになること。コンフ 
ィグできるほうがいいのだが, 

だめだとしても, 

•あら力、じめ CTRL + H , 

CTRL + M とカーソル移動く 
らいは CTRL ファンクシヨン 
に割り当て,あとのキーは押 
してもなにも起こらないよう 
にする 

•もしだめなら, CTRL ファ 
ンクシヨンを一切受けつけな 
いようにする 

b . カーソル位置変換にした 
とき,変換作業は反映されな 
いケースがある。これは困る。 


カーソル 位置 エコーに した意味がない 

このあたりに対するバグフイクス,じや 
なくてバージョンアップを早急にしてほし 
いと思う。 

ファイル,辞書の比較 

賢いと聞くと,さぞやメモリを食うだろ 
う,と思うのが人情。そこで,以下の表を 
ご覧く AT さい。 

ファイルサイズ表 

FEP 本体標準システム 65 K バイト 

スモール システム 63 K > ヾ 'イト 

辞書 標準 816 K バイト 

ミドル 636 K バイト 

スモール 454 K バイト 

FEP 本体である。 FIXER . SYS と 
FIXERS . SYS がある力 ? ,これは後者が機能 
縮小版である。といっても, カーソル 位置 
での変換力 5 'できないだけのようだ。どちら 
にしろ, ASK よりずっと小さく感じるが, 
実は気のせいだったりして, FIXER のほう 
が,若干メモリを多く占有するようだ。た 
だし, FIXER は辞書バッファの大きさを指 
定することができるため,その値によって 
大きく占有メモリは変わる。 

辞書はもうとんでもな〈大きい。が,小 
さい辞書もあるので,辞書ドライブの具合 
によっては,そちらを使う手もあるた^ろう< 
辞書メンテナンスは ASK についてくる 
DICM より使いやすいため,自分の辞書を 
作るのは楽だ。このレビューは大きな辞書 
で書いている。 


図® 



大人のための X 68000 97 































ヒジユアルシェル 

ED 

WP 

Communication PRO 
CARD PRO 
Kamikaze 
Hyperword 
CyberNote PRO 
Z'sSTAFF PRO 
Music PRO 
CANVAS PRO 
SX-WINDOW 
Magic Palette 
File Processer 
microEMACS 
Muterm 


EXDISP=EXTEND EXDISP=NQRMAL 


なお,この辞書は ASK 同様,読みに記号 
も使えるし,単語に半角文字も登録できる 
ので,なんでも登録できて便利だ。 

FIXER の辞書は郵便番号も持っている 
が,これはすべて“/+番号”という読みで 
登録されている。 

コンフィギュレーション 

さて,図1が FIXER の コン フイグフ アイ . 
ルだ o ASK 2.0 より項目が少ないが,これは 
キーコン フイ ギュレーショ ンができないか 
らにすぎない。 

重要なのは, EXDISP だ。 EXTEND か 
NORMAL かで大きく変わる。それは次の 
項を読めばわかる。 

ちなみに, SPEED は高速にすると速くな 
るが,変換効率は落ちる。確かに,通常速 
度では遅いと感じることもあるが, ASK の 
ように辞書を延々と読みにいくことはない 
ので許せる。 

PERIOD は句読点変換。 

学習機能も3種類選べるが,自動的に学 
習するモードだと変換のたびに学習してく 
れる。 ASK のように FEP を ON / OFF する 
たびに学習結果を書きにいって,待たされ 
ることもない。 

動かないアブ ! J 

さて,いろいろと賢くて気に入っている 
FIXER だが,問題点があったりする。それ 
は図2の表を見れば一目瞭然だ。 

左から,アプリケーション名,コンフィ 
ギュ レーションフアイルの EXDISP = 

図1コンフィギュレーションファイル 


EXTEND のときの動作, NORMAL のとき 
の動作だ。とりあえず調べたのはこれだけ 
だ。 

実に動かないアプリケーションが多い。 
EXDISP は NORMAL にしよう 。 EXTEND 
だと「変換ウインドウを下に開〈アプリケ 
ーションのときに表示がおかしくなる」の 
だ。 

それでもワープロ系ソフトと Kamikaze 
はだめだった。 SX - WINDOW はまったく 
だめというわけではなく,変換ウインドウ 
は開くのだが,動作がおかしくなる。どち 
らがおかしいのかはわからない力す,どちら 
かのバグかもしれない。 VS . X では問題なく 
動くことだし。 

WP . X はまったくだめ。 Kamikaze も変 
換モードにいってもくれない 。 Hyperword 
にいたっては, 「 ASK バージョン2が組み込 
まれていません」といって,立ち上がって 
もくれない。 

DOS の世界では,日本語 FEP に対応する 
のはアプリケーションの仕事なので, 
FIXER が悪いというのも酷だが,ワープロ 
系ソフトが全滅というのは痛い。早く FIXER 
対応になってもらいたいものである。 

FIXER を使って 

いま FIXER を使っているのだが,変換効 
率だけはやたらといいので,学習さえさせ 
てしまえば,非常に気が楽だ。なんといっ 
ても,句読点変換をしていて腹が立たない 
のだ。逐次自動変換でも 
腹が立たない。これはす 
ごいことだと思う。使う 


ときは,辞書先読み連文節変換&句読点変 
換で,学習優先モードがいい。さすがに逐 
次自動変換はちよっと怖いからだ。 

ただ, X 68000 の設計の問題で無理なのか 
もしれないが, ローマ字 入力の際,かな— 
アルフアベ ツト変換がほしかったと思う。 
私などが書くこういった文章には英単語が 
頻出するので, いちいちローマ字の ON / 
OFF はしたくないのだ。 

そういうわけで, Hyperword が好きな私 
も,今回だけはあきらめて microEMACS を 
使っていたりする。 

気持ちは「頑張れ FIXER !」だ。 PC -9801 
ユーザーは NEC の MS-DOS についてくる 
NEC AI 変換を使ったりはしない。使いに 
くいからだ。 Mac ユーザーは,漢字 TALK 
についてく る 2.0 変換を使ったりはしない。 
使いものにならないからだ。 DynaBook ユ 
ーザーは ATOK 7 を使う。辞書を ROM に持 
ってい るからだ。 X 68000 ユーザーは ASK 
を使う。ほかにないからだ。 

X 68000 ユーザーだって,賢い FEP を使 
いたい。!:りあえずは,表にある FIXER が 
動作しないアプリケーシヨンを FIXER 対 
応にしてもらって,それからだ。 

少なくとも私は, ASK から FIXER に乗 
り換える心の準備とハードデイスタの準備 
はしているぞ。早いうちにここであげつら 
った欠点を直してもらいたい。 

いつもやっているので,またあてになら 
ない予告をしておくと,来月は確定申告に 
X 68000 を使う話でもするとしよう。 


図2対応アプリケーション 


* I :変換位置がずれる。 

*2 : 変換はするが表示されない。 

*3: 表示はいいが、変換されない。 

なお, microEMACS, Muterm は市販品ではない。 


項目 

コメント 

BUFFRS= 1 〜 249 

辞害バッファ。ひとつ 2K バイト 

DIC= 辞害のファイル名 


LEARN = AUT0/MANUAL/0FF 

学習モード 

STYLE = N0RMAL/READ/AUT0 

変換方式。 AUT0 が逐次自動変換 

PERIOD = 0N/0FF 

句読点変換 

PRIORI 7Y=LEARN/MEAN 

学習結果と意味解析の優先順位 

CHARA = ZEN/HAN 


INPUT = N0RMAL/HR0MA/KR0MA/HIRA/KATA 

CTRL + XFI 時の入カモード 

C0DE= HEX/KUTEN 


SPEED = NORMAL/HIGH 

変換速度 

MODE: SCREEN/LINE 

変換位置 

BSCHR= 1/2 


CAPS= 0N/0FF 


FKEY= 0N/0FF 


EXDISP=EXTEND/NORMAL 

N0RMAU こしておくべき 


〇〇〇〇〇 X X 〇〇〇〇 XO 〇〇〇 


丨 2 I 2 
#*** 

00 〇 x o x xO 〇〇〇 x 〇〇〇 x 


98 Oh! X 1991.2. 















•特集 2 SX - WINDOW プログラミング 


SX 個 DOW 



SX - WINDOW 上のアブリケーシヨンを作成する 
ための第一歩は SX システムの仕組みとさまざまな 
作法を知ることでしよう。また実際のプログラムは, 
S X システムがサボートするサブルーチン S X コー 
ルを利用することで実現されます。前回の特集では 
このあたりの概念とアセンブラによるプログラミン 
グへの導入を行いました。解説のもとになる資料は 
先月の付録ディスク「謹賀新年 PRO - B 8 KJ に収録 
されています (169 ページを参照)。 

さて, SX - WINDOW 用プログラムの開発環境と 
してはアセンブラまたは C 言語が中心になると考え 
られます。そこで今回は,前回の解説をもとに XC 
ver. 2.0 でプログラミングを行5場合について見て 
いくことにしましよう。また,あわせてウィンドウ 
上のプログラムで皆さんの関心が高いと思われるグ 
ラフマネージャの使い方を解説します。基本的な図 
形の表示をもとに理解を深めてください。 












































特集 2 SX - WINDOW プログラミング 


ウインドウプログラミングへの道 (2) 

CSI 吾によるプログラ5ング 

SX-WINDOW 上のプログラムを作成するための基礎知識とし 
Murata Toshiyuki 村田敏幸 て, SX システムのしくみを解説し,同時にアセンブラによる基 

本的なプログラミングの作法を示しました。今回は前回の話を 
ベースに C 言語で開発を行う場合について解説しましょう。 


先月に引き続き, SX - WINDOW プログ 
ラミングの基礎編です。今回は C 言語によ 
るプログラムの 作り方を解説し,さっと切 
り上げます。用語などにつきましては,適 
宜,前回の記事を参照してください。また, 
C で プログラム 開発を行うた めの 道具とし 
て , XC ver .2.0 と先月号の付録ディスク 
に収録されていたヘッダファイルと C 用の 
ライブラリを用意してください。 

なお,不本意ながら,この記事は XCVer . 
2.0 のみの使用を前提に進めます。先月号の 
付録ディスタで配布されたヘッダファイル, 
ライブラリ KXC Ver .2.0 用で,少なくと 
も, XCVer .1.0, ないしは, gcc + XCVer . 
1.0 のライブラリでは使えません。また, 
gcc+XC Ver .2.0 のライブラリでの開発は 
メモリ不足で,ほとんど実用にならないで 
しよう。2 M バイトのメインメモリでは, 
あとで示す小さなサンプルプログラムをコ 
ンパイルするのが精一杯です(当然, 
ASK 68 K など不要なデバイスドライバは 
すべて外していますし, MAKE も使ってい 
ませんが)。 

原因は, SX - WINDOW 用のヘッダファ 
イ ルの 中で,多くのデータ型•関数が一括 
して定義•宣言されているためです。へッ 
ダがマネージャ別に分割してあり,必要な 
も のだけをイン クルー ドできるよう になっ 
ていれば,おそら 〈 gcc も利用でき, XC を 
使うときにもコンパイル時間が短縮される 
のですが。 

さっそく環境作りを 

では, SX - WINDOW の開発キットを C 
プロダラミング環境に取り込んでおきまし 
ょう。先月号の付録ディスクを展開して得 
られた4枚目のディスク中, ¥ SX¥INCL 
UDE にあるヘッダフアイル SXLIB . H , 
SXDEF . H を XC 標準のへッダファイルを 
収めたデイレクトリに, ¥ SX ¥ LIB にある 

_ ライブラリファイル SXLIB . A と 

MAINR .0 を XC のライブラリと同じデイ 


レクトリに,それぞれ, コピーし ます〇ま 
た, ¥ SX ¥ TOOL にある4本のファイル中, 
少なくとも WDB . X は, パスの 通った適当 
なディレクトリに置いておきます(デ ィス 
クにゆとりがあるようでしたら残りの.3本 
も一緒に転送しておきましょう)。 

さらに, CONFIG . SYS にも注意を向けま 
す。メモリの増設具合にもよりますが, 
FSX . X を CONFIG . SYS で組み込んでしま 

うと, コンパイル 時の フリーエリアが 十分 
確保できない可能性があります。 FSX . X は 
動作試験時など必要なときにのみ組み込み, 
用がすんだらすかさず外すようにします。 

動作試験といえば, SX シェルが起動時に 
無条件に G - RAM を初期化するのを忘れて 
はいけません。 G - RAM を RAM ディスタに 
して,その上で開発を進めていたりすると, 
動作試験を行った瞬間に RAM ディスタ 中 
のファイルがみんな消えてしまいます。 G - 
RAM は RAM ディスタと しては使わない 
ようにするか, せいぜい テンポラリ デイス 
クとして使うにとどめましょう。もっとも, 
SX シェルが G - RAM を初期化するのに利 
用して いる IOCS コール 90 H の G _ CLR_ON 
を殺してしまう技もないではありませんが 
(どこかで,そんな公開ソフトを見掛けた 
ことがあるような気もします)。 

先月のサンプルを。で書き直す 

作業環境さえ整えれば,もうすぐにでも 
SX - WINDOW プログラミングにとりかか 
ることができます。プログラムの構造その 
ものは,先月お話ししたアセンブリ言語の 
場合となんら変わりありません。というわ 
けで,さっそくですが,サンプルプログラ 
ムをリスト1,そのコンパイル用のバッチ 
ファイルをリスト2に示します0リスト1 
は,先月,ァセンブリ言語で書いた 
WINTEST . S を C で書き直したもので,両 
者の動作はまったく同じです(なんてった 
って,ハンドデイスコンパイルしたんです 
から)。ウィンドウを開き,適当に文字列を 


表示します。 

以下,プログラムの各部を順に見ていき 
ます力 ? ,スペースの都合もあり,余り詳し 
くは説明できませんので,足りない部分は 
リスト中のコメントと,先月のアセンブリ 
言語版の解説で補って〈ださい。 

•大域変数の定義 (46 〜51行) 

このプログラムはリエントラントに書い 
てあります。先月も触れたように,ブログ 
ラムをリエントラントに書いておくと,同 
時に複数起動するときでも,プログラムの 
コード自体はメモリ上にただひとつあれば 
すみます。同じプログラムをいくつもメモ 
リに置く必要がない分,メモリの使用量を 
抑えることができるというわけです。メモ 
リは貴重な資源ですから, SX-WINDOW 
上では“プログラムはリエントラントに作 
る”のが基本です。 

リエントラントに書かれたプログラムで 
は,プログラムの実行コードだけではなく, 
静的に宣言された変数も複数のタスクから 
共用されることになります。各タスクに固 
有の変数は,必ず auto 変数として,スタッ 
ク上に用意しなければなりません。 

ここで, C の言語仕様上の問題が顔を出 
します。どうやって大域変数を実現するか 
という問題です。リエントラントに書くた 
めには,関数の外部で変数を宣言するわけ 
にはいきませんし,といって, auto 変数は 
ひとつの関数内でしか参照できない局所的 
な変数です。 C ではスタック上に用意した 
変数を複数の関数から直接参照する手段が 
用意されていません。 

ひとつの解決策がリストの46〜51行です。 
“本当は関数の外で定義したかった変数” 

をみんなひっくるめて構造体でくくり, 
GVAL という名前のデータ型として 
typedef してあります。そして,ず一っと 
下,メインルーチン内の291行で,この型を 
もったデータオブジェクトを実際にスタッ 
ク上に確保し,以下,関数呼び出しのとき 
には,この構造体へのポインタを関数へ渡 
してやるようにします(たとえば,300行の 


100 Oh! X 1991.2. 





ように)。呼び出された関数側では,この構 
造体へのポインタに“一>”演算子を適用 
することで,個々の“疑似大域変数”にア 
クセスできるというわけです。 

なお,こうして実現した“疑似大域変数” 
は,あくまで, auto 構造体ですから,明確 
な初期化 (291 〜294行)を行わない限り, 
初期値は不定です。ふつうの大域変数感覚 
で初期化をサボると,ときに,プログラム 
が異常動作することになります。 

• メインルーチン (289 〜325行) 

アセンブリ言語で SX - WINDOW 用プロ 
グラムを書いたときには, COMMAND.X 
から直接起動する場合と, SX シエル上で起 
動する場合との2つのエントリを用意し, 
それぞれ,ある程度の初期化動作を行う必 
要がありました。しかし, C の場合は,こ 
のあたりの決まりきった処理はスタートア 
ップルーチン ( C プログラムに必ずリンク 
され,諸々の初期化を行うモジュール)が 
肩代りしてくれます。関数 main では純粋に 
プログラム自身の初期化(ウィンドウを開 
くとか,変数を初期化するとか)から始め 
ればよいのです。リスト1では,300行でウ 
ィンドウを開く関数 init を呼び出し,エラ 
—なくウインドウが開けたら,イベントド 
リブン型プログラムの特徴的なメインルー 
プ (304 〜324行)になだれ込んでいます。 
•初期化部 (80 〜108行) 

初期化部分には,わずかにアセンブリ言 
語版と異なる点があります c 84行と86行が 
C 使用時特有の処理です。 

84行では, TSSetAbort により,ハードウ 
エアエラーにより中断された場合の処理関 
数を登録しています 0 この TSSetAbort は 
SX コールで はなく, C 独自の関数です。 

先月のアセンブリ言語版では SX コール 
TSEvent Avail を呼び出したときに,その 
戻り値を調べ, エラー の有無を調べたわけ 
ですが,ライブラリ関数 TSEventAvail は 
関数内部でこの ハー ドウエア エラーを 調べ, 
エラー 時には TSSetAbort で指定された関 
数に自動的に制御を移します 。 TSSet 
Abort は2つの引数をとります。第1引数 
は中断時に実行される関数へのポインタで 
す。また,第2引数はその中断時処理関数 
に渡される引数です。通常,例の“疑似大 
域変数”へのポインタを指定することにな 
るでしょう。 

86行では TSGetTdb により,82行で用意 
した task 構造体に g 分自身のタスク管理ブ 
ロックを読み込んでいます。これは,続く 
89行の TSTakeParam に渡す “ argv に展開 
される前のコマンドライン文字列”を得る 


ためです (コマンド ライン文字列はタスク 
管理ブロック中に格納されています)。アセ 
ンブリ言語 レベルで なら,タスク起動時に 
a 2 レジスタで 渡 された コマン ドライン文 
字列がそのまま利用できるのですが, C で 
はここでやったような回りくどい手段をと 
る必要があるのでした(実はもう少し深い 
意味があるのですが,端折ります)。 

89行以降は,先月のアセンブリ言語版と 
変わりありません0ウィンドウを開くとき 
の常套手段です。89〜95行でウィンドウの 
表示位置を決め,98〜99行の WMOpen によ 
ってウインドウを作成します 。 WMOpen 
は,ウィンドウが作成できた場合には作成 
したウインドウのウインドウ構造体へのポ 
インタを,また,メモリ不足などの理由で 
作成に失敗したときには NULL を返しま 
す。 NULL が返った場合には,もうどうし 
ようもありませんから,メインルーチンに 
戻って,そのまま終了です。うまくオーブ 
ンできた場合は,必要に応じてウィンドウ 
の細かな初期化を行います。 

既存のデスクアクセサリの多くでは,こ 
こで描画色や背景色などの設定を行ってい 
ます。もっとも,ウィンドウを開いたとき 
に,描画色は黒(正確には少し違うけどパ 
ス),背景色は明るいグレーというように, 
かなり都合よく初期化されますから,リス 
卜1ではばっさり省略してあります。 
•マウス左ボタンダウンイベント発生時の処 
理 (113 〜141行) 

マウスの左ボタンはアクティブウインド 
ウの切り替えやウィンドウの移動.拡大に 
使うよう決められているボタンですから, 
ここで,ウィンドウに対する操作の大部分 
を処理します。ほとんど決まりきった手順 
ですから,多くの場面でリスト1がそのま 
ま利用できるでしょう。基本的なウィンド 
ウ操作以外のプログラム独自の処理が必要 
な場合には,133行以下の switch の中に, 
case W _ ININSIDE : 

処理 

break ; 

のような形で ウイン ドウ パー トコードに応 
じた処理を追加していくことにになります。 

•アツ プデートイ ベン ト発生時の処理 

(230 〜251行) 

アップデートイベントについては,先月 
も触れましたが,若干言葉が足りなかった 
ようですので,この場で補足します。 

下敷きになっていたウィンドウが上にな 
り,いままでほかの ウインドウで 隠されて 
いた部分が見えるようになった場合,ウイ 
ンドウマネージャは新たに見えるようにな 


った領域を,対応するウィンドウのアップ 
デートリージョンにつけ加えます。イベン 
トマネージャはほかに重要なイベントがな 
い場合に,各ウィンドウのアップデートリ 
ージョンを調べ,もし空でなければ,画面 
再描画の必要ありと判断して,該当ウィン 
ドウにアップデートイベントを送ります。 

アップデートイベント発生時の処理手順 
は次のようになります。 

1) そもそもイベントが自分に向けられた 
ものかどうか調べる (233 行)。そうでなけ 
ればなにもしない。 

2) WMUpdate を呼び出し,以後の描画が 
アップデートリージョンでクリッピン グさ 
れるようにする (235 行)。 

3) 画面を描き直す前に,必ず , GMSetGraph 
を使って,_分をカレントグラフにする 

(238 行)。 

4) 実際に画面を描き直す(リスト1では, 
146〜228行の下位関数で実際の描画を行っ 
ている)。すでにアップデートすべき範囲で 
クリッピングしてあるから,何も考えずに 
全画面を描き直してよい。 

5) 再描画がすんだら, WMUpdtOver を 
呼び出し, WMUpdate 呼び出し前のクリッ 
ピング範囲に戻す (248 行)〇 

ここで,もし,アップデートリージョン 
以外の領域も同時に描き直したい場合には, 
次のいずれかの方法をとります。 

1) WMUpdate 呼び出しに先立って, 
WMAddRect や WMA 如 Rgn を使って,再 
描画したい領域をアップデートリージョン 
に加えておく。 

•2) WMUpdate 呼び出し後に , WMCli 
pRect や WMSetClip によりクリッピング 
範囲を再設定する。 

3) WMUpdate を呼び出す前,あるいは, 
WMUpdtOver を呼び出したあとに不足部 
分を描画する(リスト1ではこの方法でグ 
口ーボックスを描いています)。 

どの場合にも, WMUpdate と WMUpdt 
Over は必ず呼び出さなければなりません。 
これらのコールにより,アップデートリー 
ジョンが空になり,“イベントマネージャが 
アップデートずみだと判断できるようにな 
る’’からです。これらコールを呼び出さな 
い限り,イベントマネージャは永久にアッ 
プデートイベントを発行し続けることにな 
り,プログラムが止まってしまいます。 
•アクティべ一トイベント発生時の処理 
(256 〜265行) 

アクテイべ一トイベントはウインドウが 
アクティブになったときに,最優先で発行 
されます。たとえば,ウインドウを新たに 


特集 c 言語によるプログラミング 101 


開いたときや, WMSelect で自分のウィン 
ドウをアクティブにしたときには,その直 
後にアクティべートイベントが発行される 
ことになります。 

ここでやるべきことは,“自分がいまアク 
ティブかどうかを内部のフラグに覚えてお 
く”ことだけです。既存のデスクアクセサ 
リの中には,“自分がアクティブかどうかの 
フラグ’’を WMSelect を実行したときなど 
にも更新している場合があるようですが, 
フラグの更新は,アクティべートイベント 
発生時に一括して行えば十分です。 

_タスクマネージャからのイベント発生時の 
(270 〜284行) 

タスタマネージャからのイベントの具体 
的な指示内容は,イベントを取得したとき 

にイベントレコードの what 2 フイールドに 
格納されていますから,その内容に応じ, 
switch で処理を振り分けます。リスト1で 
は,どんなプログラムでもサポートしなけ 
ればならない最低限のイベントのみを処理 
対象にしています。 

•終了時の処理 (61 〜67行) 

ウィンドウを閉じ,終了しているだけで 
す。本来, SX - WINDOW 上のタスクは 
TSExit で終了するのですが, SX - WIN - 
DOW 用 C ライブラリには TSExit はなく, 
ふつうどおりに exit を使う約束になってい 
ます。 

注意すべ吉ポイント 

最後に, C で SX - WINDOW 上のプログ 
ラムを作る際の注意点を挙げておきます。 
•メモリ消費を抑えるために,スタックサ 
イズとヒープ ( SX - WINDOW のヒープで 
はなく, malloc で確保して使う C のヒー 
プ)サイズはなるべく小さ〈とる。 

XC では,特に指定しないとスタックとヒ 
ープにそれぞれ 64 K バイトのメモリを確保 
します。 2 M バイト程度のメインメモリで 
SX シェルを使っているときに計 128 K バイ 
卜 ものメモリを占有するのはほとんど犯罪 
行為ですから,/ Gs ,/ Gh の各スイツチで,必 


要な分だけ確保するようにしましょう。ス 
タックを小さくすることに不安があるので 
あれば,スタックチェックのコードの生成 
を指定する/ Gc スイッチをつけてコンパイ 
ルし,スタックがあふれていないかどうか 
確認するようにします。なお,スタックサ 
イズ,ヒープサイズの最小値は,それぞれ, 
4 K バィト,8 K バィトです。 

• 画面への出力には C 標準関数ではなく, 
SX - WINDOW のライブラリを使う。 

いまのところ, printf などの C 関数は SX 
- WINDOW に対応していません。もし, 
printf に相当する処理を行いたい場合には, 
sprintf で一度 char 型の配列に出力文字列 
を作成し,その後, GMDrawStrZ で表示す 
る,といった細工が必要です。 

• C の低レベル I / O 関数はなるべく使わな 

い0 

クリーナーの関係で, SX - WINDOW 上 
でのファイル I / O には, DOS コールではな 
く, SX コールを使う約束になっています0 
一応,基本的な入出力は一般的な C プログ 
ラムと同じ手順で行えるよう, SXLIB . A 中 
には SX コールに対応した open と close が用 
意されてはいます力 ? (これらは間接的に 
fopen , fclose からも呼び出されます),ファ 
イルの属性を取得•設定するとか,ファイ 
ルを消去すると力%ディレクトリ中から特 
定ファイルを検索するといった関数に対し 
てはなんの配慮もありません。これらの処 
理が必要なときには,タスクマ4、ージャの 
SX コールから同等のものを探してきて置 
き換える必要があります(たとえば, 
remove — TSDeleteP というように)。 

• ( C の)ヒープのサイズを変更する関数は 
使用できない。 

SX - WINDOW 上の C プログラムでは, 
( C の) ヒープは ( SX - WINDOW の) ヒー 
プ上に確保されます。そのため, sbrk や 
bldmem といった ヒ ープを拡張する関数は 
使できません。ヒープが足りなくなった 
ら勝手に sbrk するように malloc を改造し 
てい.る人も多いと思います力 5 ', SX-WIN 
DOW 上では通用しませんから注意してく 
リス ト1 WINTEST.C 


ださい。 

•リエントラントなプログラムでは, C ラ 
イブラリ関数内の静的ワークにも配慮する。 

C の関数の中には,内部に静的なワーク 
を持っているものがあります。たとえば, 
fopen などで使われるファイル構造体の配 
列とか, malloc などで使われる ( C の)ヒ 
ープ管理用ポインタ, strtok 内の小規模な 
ワークなどです。リエントラントなプログ 
ラムでは,これらの目に見えないワークも 
複数のタスクで共有されます。 

SX - WINDOW では,さほど厳密な意味 
でのリエントラントさは要求されませんか 
ら,内部にワークをもったライブラリ関数 
が即使用不可というわけではありませんが 
( TSEventAvail を呼び出すまでは,ほか 
のタスクが同じライブラリ関数を使用する 
ことはありえないから安全),ワークの競合 
には一応気をつけなければなりません。 

致命的な例としては fcloseall があります。 
fcloseall によりファイルを全部まとめてク 
ローズしようなんてことをすると,コード 
を共有する全タスクのファイルがまとめて 
閉じられてしまうのです。 

•リエントラントなプログラムでは,オー 
プンできるファイルの数や,使用できる (C 
の)ヒープ領域がいつもより少ないことを 
計算にいれる。 

上で述べたことともダブりますが,リエ 
ントラントなプログラムではファイル構造 
体を格納しておくライブラリの内部ワーク 
や, ( C の)ヒープも,複数のタスクで共用 
されます 0 自分はまだ, malloc を1度も呼 
び出していないのに,すでにヒープに空き 
がないという事態も起こりうるわけです。 
再三, SX - WINDOW 上ではプログラムは 
可能なかぎりリエントラントに作るようい 
ってきましたが,この制限を回避するため 
には,リエントラントに作ることを諦める 
しかありません。 

氺 

以上, C による SX - WINDOW プログラ 
ミングの基本部分について,簡単にまとめ 
てみました。 


2 

3 


6 

7 

8 
9 

10 

11 

12 

13 

14 


ウィンドウを閧いて文字を表示する 

>/ 

♦define NULL ( ( void *)0) 

#include <stdlib.h> 

#undef __POINT_T / *point_t 型を間連いなく long 型と等価にする呪文本 / 

^include <axlib.h> 

typedef enum { FALSE, TRUE, ) BOOLEAN : 

fdefine G_PLAIN 0 /* ブレーンな書体 零 / 

/* x , y 座標から point_t 型を作るマクロ */ 

♦define Pt(x , y) ( ( point_t )( ( point_t )(x) << 16 | ( short )(y))) 


102 Oh! X 1991.2. 



15 

16 

17 

18 

19 

20 

21 

22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 

61 

62 

63 

64 

65 

66 

67 

68 

69 

70 

71 

72 

73 

74 

75 

76 

77 

78 

79 

80 

81 

82 

83 

84 

85 

86 

87 

88 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 

100 

101 

102 

103 

104 

105 

106 

107 

108 

109 

110 

111 

112 

113 

114 

115 

116 

117 

118 

119 

120 

121 


WDEFID 

WINOPT 

WIMOPTLOW 

WINDEFID 

WINH 

WINV 

WINSIZE 

WIKTITLE 


*/ 

♦define WDEFID 
♦define WINOPT 
♦define WINOPTLOW 
tdefine WINDEFID• 
♦define WINH 
参 define WINV 
攀 define WINSIZE 
♦define WINTITLE 


WI_STD 

(WC_GBOX | WC_GBOXON ) 

(WINOPT & Oxf ) 

(WDEFID << 4 | WINOPTLOW ) 
208 
160 

Pt( WINH, WINV ) 

((LASCII « )"¥x08untitled" 


/* イベントマスク 
♦define EVENTMASK 


V 


EM_MSLDOWN|EM_UPDATEI EM ACTIVATE IEM_SYSTEM1IEM_SYSTEM2 


GMSetGraph( gp->winptr ); 
WMDrawGBox( gp->winptr }; 
return ( TRUE ) : 


/* 

マウス左ボタンダウンイペントの処理 

*/ 

void mouseLdown_event( GVAL 拿 gp ) 

t 

window twtemp; 


/* デバッグ用シェルを起動するためのコマンドラ 
char _sxkernelcorarat] = "sxwdb.x -D -K"; 




拿本拿拿尊/ 


/* 

本/ 


終了時処理 


void term( GVAL *gp, int retval) 

if ( gp->winptr != NULL ) 

WMDispose( gp->winptr ); 

exit( retval) : 


/* ウィンドウをオーブンしているのなら */ 
/» ウィンドウを破棄する */ 

/* 終了コードをもって掃る */ 


/* 

エラーによる中断時処理 ( TSSetAbort で登錄する 

*/ 

void myabort( int dummy, GVAL 本 gp ) 

{ 

tern< gp, EXIT_FAILURE ); 


/* 

初期化(ウィンドウオーブン〉 

*/ 

BOOLEAN init( GVAL *gp ) 

{ 

task taskbuf : 

TSSetAbort( myabort,(long )gp ) ; /* 中断時処理閫数を登錄する */ 

TSGetTdb( &taakbuf , -1) ; /* タスク管理ブロックを得る */ 

/* ウィンドウの表示位置を決める */ 
if ( ( TSTakeParam( &taskbuf.command, 

4«p->winaize, NULL, 0, NULL, NULL ) & 1)==0 ) { 

*( point_t * >( 4gp->winsize.left ) 

=< point_t )TSGetWindowPo8 (); 

*( point_t * )( &gp->win8ize•right ) 

=•( point_t * )( &gp->win8ize.left ) + WINSIZE ; 

) 

/* ウィンドウをオーブンする */ 

if ( ( gp->winptr = WMOpen( NULL, &gp->winsize, WINTITLE, TRUE, 
WINDEFID, ( window * )-1,TRUE, TSGetID() ) ) r= NULL ) { 
return ( FALSE ) ; /* オーブンできなかった */ 

} else ( 

gp-> winptr->wOpt ion = WINOPT ; ウインドウオプションを投定する */ 


/* データエリア(大城変数) 
typedef struct { 

window *winptr; 

BOOLEAN activeflag; 
rect winsize; 
tsevent eventrec; 

]GVAL : 


/* point_t 型を x , y に分けるマクロ */ 

^define PtX(p) ( ( short )( (p) >> 16 )) 

tdefine PtY(p) ( ( short ) (p )) 

#if 0 

/* 別案(こっちは変数専用)*/ 
tdefine _PtX(pJ ( *( short 本 ) 

fdefine _PtY(p) ( M ( short » J&(pl + 1)) 

#endif 


/* ボタンが押された位置が自分のウィンドウかどうか拥ベる */ 

/* (自分のウィンドウ上でなければなにもせずに戻る)拿 / 
if i ( window 〇 gp->eventree.whom == gp->winptr ) { 

TSGetEvent ( EVENTMASK, &gp->eventrec ) ; / ♦ このイベントを取り ( If? く 尊 / 


& 

り 

>あ 
ウス 
ドク 
ンツト 
ィボツ 
ウービ 
準口4 
C グ位 

ID ンン 

数3 m 卜卜さル 
閱シシ ID ツツき 卜 
義ブブ義ドド大ィ 
定オオ定横縱の夕 
ウヴヴヴヴヴヴヴ 


t I 
n c 
is 

o A 
PL 


数数 


\ ン、 \ ンンンンン 


ウウ -D ヴヴヴクウ 


寧 _ 

グ n 

»/ラレ 
タフト 
ンのン 
イかベ 
ボぅイ 
のどの 
へか</用 
体ブ S ヤ 
造 v 位ジ 
構テの一 
ウクウネ 
ド. T ドマ 
ンがンク 
イ分イス 
ウ自ウタ 

本本拿本 

/ / / / 


ら 

か 

て 

し 

に*/ 
フ < 

ラ描 
グを 
トス 
ンク >/ 
レツ了 
カボ充 
を一化 
分口期 
自グ初 
$ $ $ 
/ / / 


特集 c 言語によるプログラミング 103 



/* あとの処理をウィンドウマネージャにまかせて ♦/ 

/* ウィンドウ内のどこでボタンが押されたのかという 
switch ( SXCallWindM( gp->winptr , &gp->eventrec 
case W_INCLOSE : /» ク ローズポ 

tern>( gp, EXIT_SUCCESS ) ; / 拿タスクを終 

break; 
default : 
break; 


/* 

アップデートイペントの処理 


/* 文宇の大きさを 8x8 ドットから 32x32 ドット 
/*1文字表示を繰り返す(文字は横に並べる 
for ( size = Pt( 8 , 8 ) ; size <= Pt( 32, 
GMFontSize( size ) : / 零フ 

GMDrawChar( * も , M /» 1 

/t ( 


void te8t3( void ) 

{ 

point_t size, poa; 


文字の大きさを 64x8 ド 
/* 1文字表示を繰り返す 
for ( size = Pt( 64, 8 
size += Pt( 0,1) 
GMFontSize( size ) 
GMMove( pos ); 
GMDrawChar( ,み , ) 


void test4( void ) 


QMFontFace( G_PLAIN ); 
GMFontKind( G_ROM24 ) : 


/* 標準の害体 

/*24 ドットフオント */ 


*/ 

void test 1 (int fontkind, point_t fontsize, point_t pos, point_t feed 


GMFontKind( fontkind ); 
GMFontSize( fontsize ); 

GMFontFace( G_PLAIN ); 
GMMove( poa ); 

GMDrawStrZ( ..標準 < plain),• 
pos += feed; 


GMFontFace( G_BOLD ); 

GMMove( poa }; 

GMDrawStrZ( ..強綢 ( bold).. ) ; 
pos += feed ; 

GMFontFace( G.ITALIC ); 

GMMove( poa }; 

GMDrawStrZ( ..斜体 ( italic > .,); 
pos += feed ; 

GMFontFace( G_ULINK ) : 

GMMove( poa ); 

QMDrawStrZ( ' ,下 * H under 1 ine )..); 
pos += feed ; 

GMFontFace( G_OLINE ) : 

GMMove( poa ) : 

GMDrawStrZ( "袋文字 ( outl ine J ") ; 
pos += feed : 

GMFontFace{ Q_SHADOW ); 

GMMove( poa >; 

QMDrawStrZ( •• 彩つき (ahadow 厂 ’ > ; 
pos += feed ; 

QMFontFaqet G_ITALIC|G_SHADOW ); 
GMMove < pos ); 

QMDrawStrZ( "組み合わせたりもして 


/* フォントの種錤をセツト*/ 

/* フォントの大きさをセツト*/ 

/»ふつうの害体*/ 

/* ペン座標=表示開始位置を指定*/ 

/* 文字列を表示*/ 

つぎの表示に備えて*/ 

/* ペン座檷を進める(改行に相当〉*/ 

パ以下,岡様*/ 


void teat2( void ) 

( 

point_t size ; 

GMFontFace( Q_PLA1N ); 
GMFontKind( Q_ROM24 ); 
GMMove( Pt( 4 , 380 )); 


標準の書体*/ 

/♦24 ドットフォン M/ 
パペン位置 =(4,380)*/ 


GMFontFace( G_PLAIN ); 
GMFontKind( G_ROM24 >; 
GMFontSize( Pt(128,128 ) 
GMMove( Pt( 220, 160 )); 
GMDrawChar( 1 «'); 


/* 標準の塞体で*/ 

/*24 ドツトフオントを*/ 
/*128 xl 28 に大して*/ 
座標 (220,160) に <7 
/* 1文字表示する*/ 


if ( ! gp->activef Lag ) ( /* いまアクティブてなければ本/ 

WMSelect 丨 gp->winptr ); /* 自分のウィンドウをアクティブにする •/ 

/»タイトルバーがドラッグされた?*/ 

if < WMFind ( ( point_t ) gp -> eventrec . whom 2, &wtemp ) != W_INDRAG 

i | EMLStilll ) == 0 ) 

return ; /* そうでなければ即戻る*/ 


122 

123 

124 

125 

126 

127 

128 

129 

130 

131 

132 

133 

134 

135 

136 

137 

138 

139 

140 

141 

142 

143 

144 

145 

146 

147 

148 

149 

150 

151 

152 

153 

154 

155 

156 

157 

158 

159 

160 
161 
162 

163 

164 

165 

166 

167 

168 

169 

170 

171 

172 

173 

174 

175 

176 

177 

178 

179 

180 
181 
182 

183 

184 

185 

186 

187 

188 

189 

190 

191 

192 

193 

194 

195 

196 

197 

198 

199 

200 
201 
202 

203 

204 

205 

206 

207 

208 

209 

210 
211 
212 

213 

214 

215 

216 

217 

218 

219 

220 
221 
222 

223 

224 

225 

226 
227 


ti* 
合 

*/ 場 

ぅた 
らつ 
もだ 
け上</ 
だースる 
報 >クす 
情 > ッ了 


しむ 

»/1卜遒 
6 t ( ッ分 
が P セ字 
な+=を 文 
せ,,,ズ1 
さ iz ィ */ は 
化 g サ示 B 
*); 卜表位 
で*/2ン字ン 
ま >3 才 文べ 


8 

2 

" 4 , 

66 

が t ( 

な P 
せ<= 

さ e 
化 1 Z 
* a 

で/); 

**4( 

、ベ0 
ks 4 
8並< 

X 2 に pt 
64纊一- 

らは 3 

か字 PO 
卜文丨 


{セ 
丨を*/ 

>ズ定 
>ィ指«/ 

VI 

■ 表 

a ン位宇 
. Y ( オン文 
フぺ1 


104 Oh!X 1991.2. 


► 1 月号のハガキの質問を見て,僕は狭い部屋の畳いっぱいに 12 冊の Oh!X を並べ, 1 時間 
ずっと本の間を行ったり来たりして,やっと順番を決めた。しかし, Oh!X の 1 月号を见て 
いて,ふと170ページで手が止まった。私の苦労っていったい? 横山诚 (18) 群馬県 



228 

229 

230 

231 

232 

233 

234 

235 

236 

237 

238 

239 

240 

241 

242 

243 

244 

245 

246 

247 

248 

249 

250 

251 

252 

253 

254 

255 

256 

257 

258 

259 

260 
261 
262 

263 

264 

265 

266 

267 

268 

269 

270 

271 

272 

273 

274 

275 

276 

277 

278 

279 

280 
281 
282 

283 

284 

285 

286 

287 

288 

289 

290 

291 

292 

293 

294 

295 

296 

297 

298 

299 

300 

301 

302 

303 

304 

305 

306 

307 

308 

309 

310 

311 

312 

313 

314 

315 

316 

317 

318 

319 

320 

321 

322 

323 

324 

325 


void update_event( GVAL *gp ) 

パ自分のウインドウかどうか調べる*/ 

if ( ( window 本) gp->eventrec.whom == gp->winptr ) { 

/* アップデート 開 始* / 

WMUpdate ( gp->winptr ); /* クリッピングリージョンと 本/ 

”アップデートリージョンを一致させる*/ 

GMSetGraph ( ( graph * ) gp->winptr I; 自分をカレントグラフにする*/ 

/* 文字を拡大 • 縮小 表示したりして 遊ぶ*/ 

testl ( G_ROM 16, Pt( 16,16 ) , Pt( 4 , 4 ) , 20 ); 
testl( G_ROM12, Pt(12,12 ) , Pt{ 220, 4 ) , 20 ); ' 
testl(G_ROM24, Pt( 24, 24 し Pt{ 4, 160 ), 28 ); 
test2(); 
test3 (); 
test4 (); 

WMUpdtOver( gp->winptr ) ; / 本クリッピングリージョンを元に戻す*/ 

WMDrawGBox ( gp->winptr ); /* グロー ボックスを描く*/ 


アクティペートイペントの処理 

*/ 

void activate_event( GVAL *gp ) 

{ 

/* アクティブになったのが自分だったら*/ 

if ( ( window 零 > gp->eventrec.whom == gp->winptr ) 

gp->activeflag = TRUE ; /* フラグを ON にする本/ 


ハアクティブになったのがほかのタスクだったら*/ 
else if ( ( window 本 > gp->eventree.whom != NULL ) 

gp->activeflag = FALSE ; フラグを OFF ( こする木 / 


タスクマネージャからのイぺ 

拿/ 

void syatem_event( GVAL <gp ) 


、の 処理 


/* イベントレコードの what2 で指定される指示に従い処理を振り分ける*/ 
switch ( gp->eventrec.what2 )' 


case ENDTSK: 
case CLOSEALL : 

terra( gp, EXIT_SUCCESS ] 
break ; 

case WINDOWSELECT : 

WMSelect( gp->winptr }; 
break ; 
default : 

break; 


/» タスクを終了しろ ! 拿/ 

/* ウィンドウを閉じろ! */ 

/* はい,はい*/ 

/* ウィンドウをアクティブにしろ!》/ 
/* ほい,ほい*/ 


/* 

*/ 

void main( void 


メインルーチン 


GVAL gval = { 

NULL, 

FALSE, 

}; 

#if 0 

gval.winptr = NULL ; 


大城変数の代わり*/ 

/♦winptr = NULL 本 / 

/*activeflag = FALSE*/ 


gval.activeflag = FALSE; 
#endif 

if ( !init( &gval)) 

term( &gval,EXIT_FAILURE 


/» ウインドウ構造体へのボインタをクリア*/ 
/* (ウインドウ未オーブンの印)*/ 

/* アクティブかどうかのフラグを OFF */ 

/* 初期化する*/ 

/* 初期化に失敗したら即終了 


/***** メインルーブ“"拿/ 
for ( ;; ) { 

TSEventAvail(EVENTMASK , &gval.eventrec 


/* イペントを取得する*/ 


switch ( gval .eventrec. what ) { /* ィベントの種類に応じて処理を振り分ける*/ 
case E_MSLDOWN : /* 左ボタンダウンイペント*/ 

mouseLdown_event { &gval) ; 
break ; 

case E_UPDATE : / 拿アップデ ー トィベント */ 

update_event( &gval ) ; 
break ; 

case E_ACTIVATE : /* アクティべ一トイペント */ 

activate_event( &gval I; 
break ; 

case E_SYSTEM1 : タスクマネージャからのイペント*/ 

case E_SYSTEM2: 

system_event( &gval ); 
break; 

default : そのほかのイペント*/ 

break ; 


リスト2 MK . 巳 AT ( f スト1のコンパイル用バッチファイル) 

cc /O /G84k /Gh8k wintest.c %1ib%¥ — mainr.o %lib%Vsxlib.a 


► 「はてしない物語 j の英語版はひどいです。2色刷りじやないし,ハードカバーじやな 
いし,衣紙は写真だし,挙げ句の果てには広告文まで人れているもんなあ(ド版がほしく 
なった)。 黑田昌利 (19) 東京都 


特集 c 言語によるプログラミング 105 







/* SXeyes 、 15 バズルのある 
/* ディレクトリ名をに書き込む 
str dir$ = "A : ¥SX_SAMPLE¥ n 
int fp 

int code( 0 ) = { 1024 } 

/* 

fp = fopen( dir$+"SXeyes.x" 
fseek( fp, &H1B44+64, 0 } 
fwrite( code,1,fp ) 
fwrite( code,1,fp ) 
fclose( fp ) 

/本 

fp = fopen ( dir$ + ” 15 ノくズル . x’| 
fseek( fp, &H1A24+64, 0 ) 
fwrite( code,1,fp ) 
fwrite( code,1,fp ) 
fclose( fp ) 

/* 

fp = fopen { dirS+" バス名 • x, 
fseek( fp, &H116A+64, 0 ) 
fwrite( code,1,fp ) 
fwrite( code,1,fp ) 
fclose( fp ) 


]3773c 137778 


0013773 C 

move . 1 

S00137AF4,D0 

— 

まずはスタックサイズを取り出し 

00137742 

cmp.1 

#$00001000 ,D0 


$1000 と脑 

00137748 

bcc. 8 

S001 37750 



0013774 A 

move.1 

#$00001000, D0 

*4- 

小さけナ U ま $1000 をセットして 

00137750 

bclr.1 

#$0000, DO 



00137754 

move.1 

D0,$ 00137 AF4 

和 

元の場所に書き込む 

0013775 A 

move.1 

$OO137AF8,D0 

4- 

ヒープサイズを取り出し 

00137760 

cmp.1 

#$00002000, D0 

4- 

今度は $2000 と比較 

00137766 

bcc. s 

S0013776E 



00137768 

move.1 

?$00OO200O,D0 

— 

小さけれ iS 2000 をセットし 

001377 BE 

add.l 

= S(H)O0000D,DC 



00137774 

be 1r.1 

#$0000, D0 



00137778 

move.1 

DO,$00137AF8 

和 

元の場所へ畨き込む 


図 2 e つの数値の実際の使われ方 


-1136f.be 136fdc 


001 36FBE 

move. 1 

*S0 000040 0,DO 

和 

$400 をセヅトし、 

00136 FC4 

add. 1 

SOO1372F4.D0 

和 

それに先の値を 

0G136FCA 

add.l 

$OO1372F8,D0 

— 

傾次加えていく 

001 36FD0 

add.l 

S001 38018,00 

-4- 

(こいつは意味不明 

001 36FD6 

move.1 

D0,-(A7) 

— 

サイズをスタックに 3 

001 36FIJ8 

pea 

<A1) 

和 

ハンドルを租んで 

00136 FDA 

MMSETHANDLESIZE 

和 

サイズを変更 

001 36FDC 

addq.1 

#8,A7 




11 TIM— 

目玉を小さくするプログラム!? 

Izumi Daisuk 日 泉 大介 


1月号付録ディスクの SX - WINDOW 用プログラム SXeyes ,15 パズル,パス名 .X 
は,実行時に 140 K バイトものメモリが必要で, 1 M バイトのシステムでは2つ以 
上同時に実行するのが困難でした。 patch . bas はこれらにパッチを当て,実行時 
に必要なメモリを 30 K バイトにまで小さくするプログラムです0 


•使用方法 

まず X - BASIC を起動し,リスト1を入力 
してください。30行で dir $にセットしてい 
るのは, SXeyes . X , 15パズル. X ,パス名. 
X の入っているディレクトリ名です0自分の 
環境に合わせてディレクトリ名はセットし直 
してください。以下に典型的な手順を示しま 
すので, X - BASIC の起動方法がわからない 
方は参照してください。 

まず,付録ディスクを解凍して得られる DI 
SK 3 をドライブ0にセットし,リセットします。 
これで VS 2. X が起動します。続いてドライ 
ブ1に本体に付厲してきたシステムディスク 
(のコピー)を挿入してください。 BASIC 2 と 
書かれたアイコンがありますね。これをダブ 
ルクリックすると, X - BASIC のディレクト 
リが開きます。この中に BASIC . X という名 
前のファイルアイコンがあります0これをダ 
ブルクリックすると X - BASIC 力 ? 起動します。 

X - BASIC が起動したらリスト1を入力し 

ます。「10/* . j と1行入力したらリタ 

—ンキーを押してください。これでプログラ 
ムが登録されます。同じ要領でプログラムの 
続きを1行ずつ順に入力していきます。なお, 
最初の2行 (10 ……,20……の2行)はプロ 
グラムの注釈行ですので,入力しなくてもか 
まいません。また,3番目の行はこの操作を 
想定して作成してあるので書き換える必要は 
ありません。 

リスト1パッチ当てプログラム 


プログラムの入力が終わったら,間違いが 
ないか十分チェックしてください。特に fsee 
k があるところは入念に。ここを間違えると 
ディスタの解凍からやり®:す羽目に陥ります。 

チェックして OK ならプログラムを実行し 
ます。 r runj と入力してください。すぐに 
実行は終了します0これで2つのファイルの 
実行時に必要なメモリは小さくなりました。 
1 M バイトの SX-WIN DOW でも,数個の目 
玉がマ ウスカーソルを追い かける不気味さを 
体験することができます。 

•パッチ当てプログラムの理論 

これらのサンプルプログラムは,スタック 
として 64 K バイト,ヒープとして 64 K バイト 
のメモリがデフオルトで用意されます。つま 
り起動するだけで単純に 128 K バイトものメ 
モリが持っていかれてしまうのです。目玉が 
140 K バイトものメモリを喰ってしまう原因 
はここにあります。これをなんとかすれば目 
玉を小さくできるはずです。 

そう考えて SXeyes . X を テ、、 バッガで視いて 
みると,図1のような部分がありました。プロ 
グラム内の特定の場所からデータを取り出し 
てチェックし,再び同じ場所に戻しています。 
参照している$ 137 AF 4, $ 137 AF 8 の2つの 
アドレスには,$10000つまり 64 K バイトがセッ 
卜されており,いかにも怪しそうです0サンプル 
プログラムにはシンボル テーブル がないので窗 
信がもてず, SX -WIN DOW 用の簡中.なプログ 


ラムを作ってデバッガで黽いてみると,同じ处 
理を行っている部分がありました。こちらには 

_ STACK , _ HEAP というシンボルが 

ふってあり間違いなさそうです。 

あとは参照している2つのアドレスの,プ 
ログラム先頭からのオフセットを出し,そこ 
に適豳な値を: a ••き込むだけで ok です。こうし 
て作ったのがリスト1のプログラムです。リ 

スト1では1024を_ STACK , _ HEAP 

に書き込んでいます。実行時には図1の部分 
でスタックは 4 K バイト,ヒープは 8 K バイトに 
セットし直されます。これで 128 K バイトを12 
K バイトにまで小さくすること力すできました。 
_ STACK , _ HEAP の値は,図2 

のように使われています。メモリマンに要求 
して確保したヒープのサイズを変更するとき 
に使用するようです。 3番目に加えている数 
値は意味不明ですが,おそらく親プロセスの 
環境変数エリァのサイズではないかと思いま 
す。時間がなく,これは詳しく追いかけるこ 
とができませんでした。 

スタック.ヒープサイズを勝手に変更して 
しまって大丈夫なのだろうかという不安が残 
りますが,私が動作チェックをした範囲では 
問題なく動いています。いずれもヒープを使 
用するプログラムとは思えませんし, 4 K バイ 
卜のスタックサイズを使い尽くしてしまうよ 
うな処理も行っているようには見えません。 
どうぞ,目玉を i 満喫してく AT さい。 


図1 SXeyes . X をデバッガで逆アセンブルしてみた例 


00000000000000000000000 
1234 5 678901234567890123 
11111111112222 


106 Oh! X 1991.2. 






















特集 2 SX - WINDOW プログラミング 


C 言語で使うグラフマネージャ基礎 

GRAPHMAN を使ってみよう 

ウィンドウ上のグラフィック表示を一手に引き受けるのがグラ 
フマンです0ここでは,レクタングル,リージヨンといつた独 
Izumi Daisuke 泉大介 特の表現を使うグラフマンそのものの理解を目指して,ウィン 

ドウとは切り離した解説を行ってみましよう。 


SX - WINDOW でのプログラム作りが 
ボチボチ!:スタートしました。先月の付録 
ディスク ( DISK 4) で提供されたドキュ 
メントとリファレンスは,これまで闇の中 
でひたすら光明を求めていた私のような一 
般 ューザーせ もアプリ ケーシヨ ン作りの道 
を拓いて <れたのです。とはいっても,リ 
フアレンろ もドキュメントも,わかる人の 
ために書かれているといった感が強く,ウ 
ィンドウプログラミングの経験がない大方 
の背さんは相変わらずの手探り状態が続い 
ていることでしよう(私とて同じで,リセ 
ットスイッチを使ったのは, Z 80 のアセン 
プリ言語を使い始めたとき以来です)。 

SX - WINDOW 上で動くアプリケーシ 
ヨンは,それぞれがひとつのタスクと見な 
されタスク マンの 管理下に置かれるという 
ことは,先月の特集,そして今月の村田氏 
の記事でもおわかりいただけると思います。 
意地の悪い言い方をすれば,タスク マンに 
首根っこを押さえつけられてもがいている 
わけです。これまでのように,メモリは全 
部俺のもの,画面も全部俺のもの。スクロ 
ールが遅い? ラスタスクロールしちや 
え!といった自由奔放なプログラムは許 
されません。お行儀よくタスク マンに 「な 
にかイベントは起きましたでしようか」と 
お伺いをたて,画面上に同時に開いている 
であろうほかのウィンドウの迷惑にならな 
いよ•う,そして一緒に動いているほかの夕 
スクの迷惑にならないように,プログラム 
を作らなければならないのです。 

それが作法というものさ,とドキ ュメン 
卜を読んでいた私の目は,グラフマンのド 
キ ュメント ではたと止まります。 「いろい 
ろ撤えたね ぇ。 な〜んだ文字はプロポーシ 
ヨナルじやないのか」と流し読みしていた 
私の目に,「グラフマンの初期化。グラフ 
マンを SX - WINDOW 以外で使用するた 
めには……」という文が映ったのです。そ 
ういえば, GRSAMP . X は SX - シェルを 
起動せずに動いていたな。思い出しました。 
TSHELL . X などは SXWDB . X をまず起 


動し,それから動いていたのに , GRSA 
MP . X はいきなり画面にグラフィックを 
表示しました。 SXWDB . X や SXWIN.X 
から起動したときには, COMMAND . X 
を SX - WINDOW から起動したときと同 
じように SX - WINDOW を抜けてから動 
き始めました。ドキュメントから察するに, 
どうやらグラフィックライブラリとして使 
えるようなのです。 

これならウィンドウプログラミングの経 
験も,パワーの有無も閨係ありません。私 
にもなんとかなりそうです 。 IOCS コール 
のグラフィッ クルー チンは基本的なものば 
かりでしたが,こちらにはちょっと面白そ 
うなものも入っていて遊べそうです。 



ドキュメントによると,グラフマンを使 
うには, 

1) メモリマンを初期化 

2) グラフマンを初期化 

3) 描画 

4) 終了(特になにもしなくていい) 

という手順で OK のようです。ただこれに 
は但し書きがついていて, 
「スーパーバイザのスタックは十分に用意 
すること。なかにはワークに 10 K バイトほ 
ど使うものがある」 

とあります。 

さて, C で作成したプログラムは通常ュ 
ーザー モードで動きます。これを スーパー 
パ、イザ モードに切り替えるのは SUPER と 
いう DOS コール用の関数です。この関数 
を実行すると,それまでの ューザー スタッ 
クが スーパーバイザ スタックとして使用さ 
れるようになります。 C で作ったプロダラ 
ムでは,通常 (ューザーが 特に指定しない 
限り) ューザー スタックは 64 K バイ ト確保 
されていますから,上の但し書きはクリア 
したものと思っていいでしよう。こうして 
スーパーバイザ モー ドにしたあとはひたす 
ら突っ走り,最後に ユーザー モードに戻し 


て終了するというアプローチで大丈夫です。 
では手順のほうをもう少し詳しく見ていき 
ましよう。 

•メモリマンを初期化 

メモリ マンは ヒープを管理し,要求があ 
ればヒープからメモリを切り出して分けて 
くれます O malloc の SX - WINDOW 版なわ 
けですね。 malloc と違うのは,要求された 
大きさのメモリを確保できなければ,内部 
でデータを詰め詰めにしてメモリを確保し 
ようとしてくれることです。「ゲゲッ,確保 
したメモリのア ドレスが 変わってしまうの 
か」という心配はご無用。 malloc で返さ 
れるのは 「void *」 ですが,メモリ マン 
が返すのはいわば 「void **」です。つ 
まり , 「void *」を入れた アドレス (こっち 
は固定)を返してくれるわけです。このあ 
たりは先月村田氏が図解してくれました力 5 ', 
あとで C 言語的に少し解説する予定です。 

メモリ マンの 初期化とは,「ヒープ領域 
はここからここまでね」とメモリ マンに宣 
言することにほかなりません。 SX-WIN 
DOW ( SXKERNEL , SXWDB , SXWI 

N ) を 使っているときには システムが 勝手 
にやってくれます力 5 ', グラフマンを 単独で 
使おうというときには自分でやらなければ 
ならないのです 0 これは malloc でメモリ 
を 確保し,それをメモリ マン 用のヒープと 
するのが簡単に実現できそうです。 
•グラフマンの初期化 

グラフマンは描画を graph 構造体を参照 
しながら行います。したがってここでは gr 
aph 構造体の初期化も同時に行う必要があ 
ります。グラフマン自身の初期化は GMIni 
tialize 関数で, graph 構造体の初期化は G 
MOpenGraph 関数で行います 。 GMInitial 
ize のほうは呼び出すだけ , GMOpenGrap 
h のほうは graph 構造体を用意して,そのア 
ドレス と テキス ト画面にするかグラフ イッ 
ク画面も使うかを引数として渡すだけです。 
•描画 • 終了 

描画はこれからいくつでもサンプルが出 
てくるでしようから,ここで取り上げなく 

特集 GRAPHMAN を使ってみよう 107 







てもいいでしよう。終了処理はなにもしな 
くていいとのことなので,素直にそれを信 
じることにします。 GRSAMP . S でもな 
にもやっていないので,きっと大丈夫なの 
でしよう。 

最初は GRSAMP . S の真似っ子 

なにもないところからいきなりプログラ 
ムを作り始めるのは大変です。まずは付録 
ディスク についてきた GRSAMP . S を 参 
考に, C 言語で作り直してみたのがリスト 
1です。大域変数は大域変数のままに,変 
数名も変えずに作ってありますので(ただ 
し場所はフアイル先頭へ移しました)見比 
ベてみてください。 

_大域変数の宣言 

最初に# define しているのは,メモリマ 
ンに渡すメモリサイズです。 GRSAMP . 
S にならって 128 K バイトをヒープとして渡 
しています。続く # ifdef は GCC ユーザー 
への配慮です。 GCC でコンパイルすると 
malloc 用のヒープ領域は 64 K バイトに設 
定されてしまい, XC のライブラリにある 
malloc では 64 K 以上のメモリを確保でき 
ません。メモリマンには 128 K バイト渡す 


つもりですから,ここでど〜んと 200 K バ 
イトのヒープを取るように指示しています。 
巷に出回っている UNIX ライブラリをご利 
用の方は削除してください。 

続いて GRSAMP . S にあった大域変数 
を宣言しています 。 t _ graph は GMOpen 
Graph 関数に渡すための graph 構造体 , s 
cr _ rect は画面全部を意味するレクタング 
ル , r _ rect と r _ oval はかどの丸い四角形 
(四円形と勝手に命名)を表現するレクタ 
ングルと楕円,そして ppat はペンのパタ 
ーンです。 ppat は四円形を描くときに指 
定される市松模様のペンデータです。残念 
ながらこの部分は問題があるようで,四円 
形の枠を市松模様にすることはできません。 
•メモリマンの初期化 

そしてプログラムはメインルーチン へと 
なだれ込みます。最初の予定どぉりまずス 
ーパーバイザモードに移行。次にメモリマ 
ンのヒープ用メモリを malloc したら,メ 
モリマンの初期化です。ヒープ領域の先頭 
アドレス,最終アドレス,一度に確保され 
るマスタポインタの数 ( GRSAMP . S に 
ならって100),エラー処理ルーチンのアド 
レス(別に指定しなくてもいいらしい), 
ブロックコンテンツの初期化フラグを引数 
リスト1 GRSAMP . S を C 言語で 


に MMHeapInit を呼び出します。 
•グラフマンの初期化 
次はグラフマンの初期イ匕です 。 GMIniti 
alize で初期化し , t _ graph をテキスト画 
面として初期化します。 

•画面の塗り潰し 

あとは絵を描いていくだけです。まずは 
背景色による画面の塗り潰しです 。 GMB 
ackColor 関数を使って背景色をセットし 
ます。ここでセットしている G_BLACK 
は SXDEF . H で定義されていて,黒を指 
示します。続いて ペン モードのセットです。 
ペン モードは,色の指定と描画 ルールの 2 
つの値を加えて指示します。色指定には, 


1) 

G — 

一 FORE 

:前景色 

2) 

G 一 

_BACK 

:背景色 

3) 

G _ 

_PPAT 

:ペンパターンで 

4) 

G _ 

一 EPAT 

:披張ノヽ°ターンで 

の4つが, 

描画ルールには, 

1) 

G _ 

_PSET 

:指定色で 

2) 

G _ 

_AND 

:指定色と 
描画面の AND 

3) 

G 一 

一 OR 

:同 OR 

4) 

G 一 

一 XOR 

:同 XOR 

5) 

G _ 

—NPSET 

:指定色の反転 

6) 

G 一 

一 NAND 

:指定色の反転と 


2 

3 

4 

5 

6 

7 

8 
9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 
21 
22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 


# include <stdio.h> 
♦include <stdlib.h> 
#include <sxlib.h> 


/* メモリマンに渡すメモリサイズを定義 */ 

#define HeapSize 0x20000 

/* GNU C ではヒープが 64K にされるので、 

それを 200K に変更する */ 

#ifdef ― GNUC __ 

asm( ".xdef _HEAP_SIZE") ; 
asra< "_HEAP_SIZE equ 204800 " ); 
tendif 

/* ブロトタイブ宣 g.*/ 

int SUPERS int ); 

/* graph 用 バッファ*/ 

graph t_graph; 

/* 画面全体を示す rectangle 

rect 8cr_rect = { 0 , 0 , 768, 512 }; 

/* round rectangle に外接する rectangle と 
round rectangle のかをの oval */ 

rect r_rect = { 400, 20, 600,120 }; 
point_t r_oval=0X000F00OF ; 

/* pen のノぺターン (C == XI 100, 3 == X0011)*/ 

unsigned short ppatt 16 ] = { 

0XCCCC, OxCCCC, 0x3333, 0x3333, 
0xCCCC, 0xCCCC, 0x3333, 0x3333, 
0XCCCC, OxCCCC, 0x3333, 0x3333, 
OxCCCC, OxCCCC, 0x3333, 0x3333 


/* 

* メイン■チン(これしかない) 

*/ 

void nain() 

I 

int ssp ; /* ssp 保存用*/ 

char *mem8tart; /* heap のスタートアドレス本/ 

Heap *heap ; /* heaped* 保判娜拿/ 

/* スーハ•ーバイザ級域に移®*/ 

SBp = SUPER( 0 ) ; 


55 

56 

57 

58 

59 

60 
61 
62 

63 

64 

65 

66 

67 

68 

69 

70 

71 

72 

73 

74 

75 

76 

77 

78 

79 

80 
81 
82 

83 

84 

85 

86 

87 

88 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 
100 
101 
102 

103 

104 

105 

106 
107 


malloc によってヒープ用のメモリを確保 */ 
if (( memstart = (char *) raalloc ( HeapSize )) == NULL ) 
fprintf ( stderr , "no enough memory for heap ¥ n "); 
exit (1); 

) 

メモリマン OWf 匕 */ 
heap = MMHeapInit ( memstart , 

(char *) (memstart + 0 x 20000 >, 

100, NULL , 0 ); 

if ( heap == 0 ) { 

fprintf ( stderr , "mm : can 1 1 create heap ¥ n "); 
exit (1); 

) 


GMInitialize(); 
GMOpenGraph( G_TXT, 


&t_graph 


!fk v/ 


画面 _ り潰し(背景色を使用)*/ 
GMBackColor( G_BLACK ) ; 
GMPenMode( G_BACK + G„PSET 
GMFillRect( &acr_ _rect ); 


/* 本/ 

/* ペンモード */ 
/* り潰し*/ 


練の描画(前雜を使用)*/ 

GMForeColor( G_WHITE ) ; /* 

GMPenMode( G_FORE + G_PSET ); /* 

GMPenSize( 0x00010001); ) 本ペン 

GMMove( 0x00100010 ); /% <0x10,0x10} にペンを棚零 / 

/* (0x100,0x100 ) まで練を弓 


拉最色12^本/ 
ペンモード設定 
ベンサイス縱 


GMLine( 0x01000100 ) ; 


引く*/ 


/* 四円形の枠を描画(ペンパターンを使用)*/ 
GMForeColor( G WHITE ) ; 
GMBackColor( G_DGRAY >; 
GMPenMode( G_PPAT + G_PSET ); 
GMPenPat( ppat ); 

GMPenSize( 0x00040004 ) : 
GMFrameRRect( 4r_rect, r_oval 

/* <ASCIIZ> 热 l ) を獅 

GMForeColor( G_BLACK ); 
GMBackColor( G こ WHITE ); 
GMFontKind( G_ROM24 ); 
GMFontFace( G_ITALIC + G_OLINE 
GMFontMode( G_PSET ); 
GMFontSize( 0x00300030 ); 


/* 




/» ペン f 一^^本/ 

/* ペンパターン肢定本/ 
ハペンサイズ拉定 V 
); /* 四円形を描く*/ 


GMMove( 0x00400120 ) ; 
GMDrawStrZ( "abedefg" 


ユーザモード復帰 */ 
SUPER( ssp ) ; 


/* 

/* 

/♦フオ 
; /* 

/本表示: 

/* 符サ • 


*/ 

*/ 

オント雌*/ 
*/ 
*/ 

芦サイズ*/ 


) : 


/* (0x40,0x120 > にペンを ^® 拿 / 
/本文^*^*/ 


108 Oh! X 1991.2. 








図 1 レクタングルの組成と scr_rec 


図2楕円と四円形の組成 


レクタングル構造体 
struct rectangle { 


short left; 
short top; 
short right; 
short bottom; 

} 


(0, 0) <- left top 


right bottom 
1 

(768, 512) 


scr_rec. Ieft= = 0 

scr_rec. top= = 0 左上,右下の座 

scr_rec. right = =768 標を与える 

scr_rec. bottom ==512 


I . 楕円は point—t で指定 



2. 四円形はレクタングルと楕円で指定 



描画面の AND 

7) G—NOR :同 OR 

8) , G—NXOR :同 XOR 

以下65536色モード(未サポート)用 


9) 

G _ 

一 ADD 

: 2 色を加える 

10) 

G - 

_ADDLIM 

:同上(最大値付) 

11) 

G ~ 

一 SUB 

:描画面から 
指定色を引く 

12) 

G _ 

_SUBLIM 

:同上(最小値付) 

13) 

G _ 

一 SELMAX 

:大きい色を選ぶ 

14) 

G : 

一 SELMIN 

:小さい色を選ぶ 

15) 

G _ 

_BLEND 

:混ぜ合わせる 


の15が SXDEF . H で定義されています。 

ここで使っているのは G_BACK + G _ 
PSET ですから,背景色での描画となりま 
す。ここでひとつ注意があります。先月の 
DISK 4 に入っていた SXDEF.H では,4 


です〇そして GMPenSize でペンの大きさ 
を指定します。引数は 0 x 00010001 と16進8 
桁になっています。前半の4桁が X 方向の 
大きさ,後半の4桁が Y 方向の大きさです。 

ここで GMPenSize の引数について補足 
しておきましよう。 SXLIB . H にある GM 
PenSize のプロトタイプ宣言を見てみると, 
int GM Pen Size ( point _ t .); 

となっています。 SXDEF.H によると poi 
nt_t は, 
union { 
point p ; 
long x_y : 

} 

だと定義されています。そして point は, 
struct { 
short x ; 


short y ; 

} 

と定義されています。つまり point_t は, 
long (4 バイトの整数)としても, short 
+ short (2 バイトの整数2つ)としても 
扱うことができるようになっているのです。 
座標を, 
point — t pt ; 
pt . x _ y = 0 x 00100100 ; 

と一気に指定してしまうことも可能ですし, 
pt . p.x +=10 ; 

のように, X 座標だけをあとから変更する 
ことも可能です(もっともこれは, short 
+ short と long がコンパイラによって同じ 
サイズに割り当てられる場合だけです。現 
行の たいていの コンパイラで先のプログラ 
ムは正しく処理されることが期侍できます 


つの色指定が, 

# define G — FORE $000 
のように定義されています。このままでは 
コンパイルで きませんので, 

# define G — FORE 0 x 000 

と,$を Ox に変更してください。ペンモ 
ードを設定したら, GMFillRect でレクタ 
ングルの塗り潰しを行います。 

籲ラインの描画 

次は前景色を使ったラインの描画です。 
前景の色を GMForeColor でセツトし,先 
ほどと同じように GMPenMode でペンモ 
—ドをセツトします。今度は前景色を使い 
ますからモードは G FORE + G PSET 


図3 point _ t を2通りに使う 


pt 



1 

1 

! 

1 



pt. p. X 

pt. p. y 


Pt- x_y 


# define^. _ POINT._T 
を実行したときの point_t 
構造体 

_P0INT_T を define しな 

ければただの long int 


図4 line の描画方法 


始点にグラフ 
イ ック カー ソ 
ルを移動し 


終点まで線を 
引く 


4 



特集 GRAPHMAN を使ってみよう 109 




























力 5 ',場合によってはうまくいかない可能性 
がないわけではありません。 XC , GCC の 
いずれでも先のプログラムは期侍どおりに 
動いてくれます)。ただ, point _ t がこの 

ような構造を持つのは_ POINT _ T が 

定義された場合だけで,それ以外のときは 
long となります。このプログラムでは, 

# define _ POINT_T 

とはしていませんので, GMPenSize には 
いきなり整数を引数として渡しています。 

ラインの描画は X - BASIC のようにライ 
ン両端の座標を指定して行うのではなく, 
タートルグラフ イック のように現在のグラ 
フィックカーソルの 位置から指定された位 
置までラインを描くという方法で行います。 
まずは GMMove でグラ フィックカーソル 
をライン始点に移動させ,続いて GMLine 
でラインを描きます 0 GMMove , GMLine 
のいずれの引数も point _ t です。つまり, 
ここでは整数です。 

•四円形の枠を描く 

GRSAMP . S では,四円形はペンパタ 
ーンを使って描かれています。ペンパター 
ンは X 方向16ドットのデータを16個並べた 
もので表現されます。1ドット分のデータ 
は0か1で指示され,0ならそのドットを背 
景色に,1ならそのドットを前景色にする 
という意味になります。つまり X 方向のデ 
ータは16ビット (2 バイト : short int ) で 
表現され,それが16個集まってパターンデ 
ータを形成して いる わけです。リスト1で 


グルと,かどの丸みを決める楕円の2つの 
データによって決定されます。指定された 
レク タングルに四円形は内接し,指定され 
た檜円の1/ 4がそれぞれのかどに割り振ら 
れるわけです。楕円は point _ t で,上位2 
バイトが X 方向の直径を,下位2バイトが 
Y 方向の直径を意味しています。 X , Y 両 
方向の直径が等しければそれは真円を意味 
します。リスト1では r _ rect と r _ oval が 
それぞれ レク タングルと楕円のデータです0 

実際の描画は,前景色,背景色,ペンモ 
ード,ペンパターン,ペンサイズを設定し, 
GMFrameRRect 関数で描くだけと簡単 
です。一連の決まり切った手続きを踏み, 
描画関数を最後に呼び出せばいいわけです。 
•文字列の表示 

グラフマンが扱う文字列には L ASCII と 
ASCIIZ の2種類があります。 LASCII は 
文字列の長さが先頭に来る文字列 。 ASCI 
IZ は0で終了する文字列です。 LASCII は 
文字列の長さを1バイトで表現しますので, 
255文字以上の長さの文字列は表現できま 
せん。ここは ASCIIZ 文字列を表示するサ 
ン プルに なっています0 

文字列表示ではいくつかの情報設定が必 
要となります。以下にこれらの情報を設定 
する関数を挙げます。 

1)GMFontKind 

表示するフォントを設定します。フォン 
卜は G — R 0 M 12, G _ R 0 M 16, G — R 0 M 2 
4の3つのフォントを選ぶことができます。 


抜きで 48 X 48 ドットに披大して表示します。 
文字表示は GMDrawStrZ で,ここでは ab 
cdefg と表示しています。 

•終了処理 

最初に スーパー バイザモードに移行して 
いますから,それをユーザーモードに戻し 
てプログラムは終了です。 

•コンパイル時の注意 

コンパイルは XC Ver . 2.0 , GCC Ver . 
1.37 で行っています。 XC の Ver .1.0 では 
構造体をパラメータとして渡す場合に問題 
がありますので,無事コンパイルできても 
動かない可能性があります。また,リンカ 
は hlk も使用可能です。 Ver .1.6 以降のも 
のをお使いください。 

リスト1は単独で使用することを前提に 
プログラムしてあります。したがって SX 
LIB . L あるいは SXLIB.A は, CLIB . L , 
CLIB . A よりあとでリンクされなければ 
なりません。 CC あるいは GCC で,コマン 
ドラインでライブラリを指定すると CLIB 
より先にリンクされてしまいますので, 
cc / Gh 200 k /Fc listl.c 
gcc -c - fno - defer-pop listl.c 
として listl . o をまず作り,それから, 
lk listl.o clib . l …… sxlib.l 
のようにリンク作業を行う必要があります。 
gcc の- fno - defer - pop オプションは,関 
数呼び出し時にスタックに積んだ引数を, 
呼び出しが終了するたびに取り除くように 
する指定です。通常はいくつかまとめて取 


は ppat 配列がこのペンデータです。 

四円形は,その大きさを決めるレクタン 

図 5 ペンパターンの組成 


I 10 0 1 10 0 1 100 1 I 00 
1100110011001100 
0011001100110011 

16 個 


11001 10011001100 
0011001100110011 
0011001100110011 

か丨を 16 個並べる 0 は背景色で 
I は前景色で塗られる。つまり 




. _こういうペン 
が作れる 


(0 か 1)X1 6 = 16 ビット = short int 
というわけで,ペンバターンは 
short ppat[ 1 6] ; 

で表現できる 


いわずと知れた ROM 内フォントと IOCS 
で作られる12ドツトフオントで, G_ROM 
12などは SXDEF . H で定義されています。 

2) GMFontFace 

文字飾りを設定します。太字 ( G_BO 
LD ), イタリック ( G _ ITALIC ), 下線付 
( G _ ULINE ), 中抜文字 ( G _ OLINE ), 
影付き中抜文字 ( G _ SHADOW ) の5種 
類があり, 

GMFontFace ( G_BOLD + G—ITA 
LIC ) 

のように足し算して複数の飾りを指定する 
ことも可能です。ただし, G _ OLINE と 
G _ SHADOW は同時に指定できません。 
これらも SXDEF . H で定義されています。 

3) GMFontMode 

GMPenMode と同じように描画規則を 
設定します。 

4) GMFontSize 

表示する文字の大きさを設定します。引 
数は point _ t です。 

リスト1は前景色に黒,背景色に白を設 
定し,24ドットフォントをイタリックの中 


り除〈ようになっていますので , SUPER 
を呼び出したときにバスエラーを起こして 
しまいます。忘れないようにしてください。 

リンク時にライブラリを列挙するのは面 
倒なものなので,リスト3のようなメイク 
ファイルを作っておくと便利でしよう。こ 
れは XC Ver . 2. 0に付属してきた make , x 
用のメイクファイルです。これと同じもの 
を makefile というファイル名で作成し, 
カレントデイレクトリに置いておけば, 
make 

と入力するだけでコンパイルからリンクま 
で自動的に作業が行われます。他のプログ 
ラムを作成するときには , 「prog =」 の後 
ろのファイル名を変更するだけで OK です。 
ライブラリの存在するディレクトリ名は, 
皆さんの環境に合わせて書き換えて使って 
ください。 

なお, gcc を使っている方には悲しいお 
知らせがあります。メモリ 2 M バイトでは 
このプログラムはコンパイルできません。 
どうしても gcc でコンパイルしたい方は, 
リスト2のようなヘッダファイルを自分で 


110 Oh!X 1991.2. 






リスト 3 メイクファイルの例 

prog = listl 
obj = $(prog).o 
lib = ¥ 

¥lib¥clib.l ¥lib¥floatfnc.1¥ 
¥lib¥doslib.l¥ 

¥lib¥iocalib.l¥ 

¥lib¥sxlib.l 

$(prog).x: $(obj) 

lk $(obj) $(lib) 

X.o: %.c 

cc /Gh20Ok /Fc )< 


すし,四円形は黄色混じりで表示されます。 
この理由は,テキストのパレットが標準の 
4色のままになっているからです。 SX — 
WINDOW では8色使用することができ, 
SXDEF . H で定義されている B_BLACK 
などはこの8色モード用の色なのです 。 G 
RSAMP . S には SX - WINDOW 用のカラ 
一に設定する GMInitPalet の呼び出しと, 
テキスト4プレーン全部に描画できるよう 
にする GMAPage がありますが,これら 
は コメント にして殺されています。 

これを考慮してリスト1を作り直したの 
がリスト4です0プログラムをすっきりさ 
せるため,初期•終了処理を main で行い, 
リスト £■ 小さなへッ f ファイル 


graph 構造体を使用する描画に関係した处 
理は display 関数にまとめました。 

初期処理として付け加えたのは,カーソ 
ルを消去することとパレットの初期化を行 
うことです。このあと diaplay 関数を呼び 
出して描画を行ったあと,終了処理に入り 
ます。画面の最下行でカーソルを点滅させ 
てキー入力を侍ち,テキスト画面をクリア 
してパレットを Human 用に再初期化。フ 
アン クシ ヨンキーの 再表示を経て ユーザー 
モードに戻り終了します。 

display 関数では GMAPage 関数を呼び 
出して,テキスト4プレーンすべてに描画 
できるようにしたほかはリスト1と同じで 


/»1ページのハイト K 蓴/ 

/* 麵麵ぴ親" 


It rectangle */ 
/* 左端の座« */ 

/* mcry/m */ 

/» ♦/ 

/* 下期の座標本/ 


/* 麵の娜本/ 

/* Hffi の大きさ*/ 

/* ペースアドレス》/ 

/* 横1ラインのバイト数*/ 

/* 色の混ぜ合わせの牌*/ 


/* バイト数*/ 

/* 囲む四角形*/ 


map 才 
/* 思面サイズ*/ 

/拿播画^-チンテーブル*/ 
/• 描画 可能 供 城のリージヨン 
/* 描 Pf 可能領域のリージヨン 
/* 麵 レベル*/ 

/* 描翻 モード 
/* 描 _位**/ 

/* ペンの太さ*/ 

/* ペンパターン*/ 

/* 拡张^ターン*/ 

/* システムで使用*/ 

/>システムで使用*/ 

/* ms 色*/ 

/* 背最 色*/ 

/* フォントの本/ 

/* 飾り 文字の指定 v 
/* モード*/ 

/* :大きさ*/ 


►)() , int) ; 


79 

80 
81 
82 

83 

84 

85 

86 

87 

88 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 
100 
101 
102 

103 

104 

105 

106 

107 

108 

109 

110 
111 
112 

113 

114 

115 

116 

117 

118 

119 

120 
121 
122 

123 

124 

125 

126 

127 

128 

129 

130 

131 

132 

133 

134 

135 

136 

137 


拿 

♦ノ 

*define 
#define 
♦define 
#define 
♦define 
♦define 
♦define 
#define 
fdefine 
tdefine 
#define 
♦define 
tdefine 
#define 
tdefine 
/* 
t 

拿/ 

tdefine 

tdefine 

♦define 

tdefine 

/* 

拿 
拿/ 

fdefine 
tdefine 
tdefine 


<draw mode> 

G_PSET 

G_AND 

G_OR 

Q_XOR 

G NPSET 

G_NAND 

G NOR 

G_NXOR 

G_ADD 

G ADDLIM 

G_SUB 

G_SUBLIM 

G_SELMAX 

G_SELMIN 

G_BLEND 

pen mode 

G_FORE 

0_BACK 

G_PPAT 

G_EPAT 

<font kind> 


参 define 
tdefine 
参 define 
tdefine 
♦define 

拿 

*/ 

♦define 
参 define 
tdefine 
tdefine 
tdefine 
/* 

拿 
窣 / 

tdefine 
tdefine 
tdefine 
tdefine 
fdefine 
tdefine 
#define 
tdefine 
♦define 


G_ROM12 

G_ROM16 

G_ROM24 

<font face> 

G_BOLD 

G_ITALIC 

Q_ULINE 

G_OLINE 

G_SHADOW 


0 

1 

2 

3 

4 

5 

6 

7 

8 

9 

10 
11 
12 

13 

14 


0x000 

0x100 

0x200 

0x300 


1 

2 

4 

8 

16 


く font face> ビット柄 


GB_BOLD 

GB_ITALIC 

GB_ULINE 

GB_OLINE 

GB_SHADOW 

text color 

G_THRU 

G_WHITE 

G LGRAY 

G_DGRAY 

Q_BLACK 

G_YELLOW 

G RED 

G_GREEN 

0_BLUE 


0 

8 

9 

10 
11 
12 

13 

14 

15 




/* 明るいグレー*/ 
/» 暗いグレー 》/ 
/* 風*/ 

/* 黄色*/ 

/* 赤*/ 

/* » */ 

/* 爾 V 


作り, 

# include < sxiib . h > 

のところを, 

# include < listl . h > 

のよう に 書き換えて コンパイル してくださ 
い。 listl.h は listl . c 用のヘッダ ファイル 
です。これを使うとフリーエリア 1.3 M バ 
イ トで コンパイル 可能となります 0 

表示される色がおかしい7 

リスト1を コンパイル •実行してみると, 
色が変なことに気がつきます。背景は G _ 
BLACK で塗り潰しているはずなのに白で 


typedef struct TBM { 

int page; 

unsigned short aPage; 

J TBM; 

typedef struct rect { 
short left; 
short top; 
short right; 
short bottom; 

} rect; 

typedef struct bitmap { 


short 

broKind; 

rect 

bmRect; 

int 

base; 

Bhort 

line ; 

union 1 

) opt; 
>; 

struct 

i 

unsigned short 
TBM tbm; 

region { 

int 

size; 

rect 

i; 

bounds : 

long 

point_t; 


bRatio; 


} bitmap; 
typedef 


typedef struct graph 


bitmap 


本 bmap; 

rect 


grRect; 

int 


♦procs; 

region 


本拿 visible; 

region 


拿拿 clipping •, 

short 


drawLvl; 

unsigned 

short 

penMode; 

point_t 

point_t 

short 


penLoc; 
penSize; 
♦penPat; 

short 


♦exPat; 

short 


workKind; 

void 


拿本 workHdi; 

unsigned 

short 

fgColor; 

unsigned 

short 

bgColor; 

short 


fontKind; 

unsigned 

short 

fontFace; 

unsigned 

short 

f ontMode; 

point_t 


fontSize; 


)graph; 

typedef struct Heap { 

1 Heap; 

Heap »MMHeapInit<chflLr 拿, char 本 f int 

void GMInitialize(void); 

int GMOpenGraph(int, graph 拿); 

int GMBackColor(int); 

int GMPenMode(int); 

int GMFillRect(rect 

int GMForeColor(int); 

int GMPenSize(point_t); 

void GMMove(point_t); 

int QMLine(point_t); 

unsigned short 拿 GMPenPat<unsigned shor 


int QMFrameRRect(rect 

int GMFontKind(int); 

int GMFontFace <int); 

int GMFontMode(int); 

int GMFontSize(point_t); 

int GMDrawStrZ(char 拿}; 


point_t}; 


<acreen kind> 


♦define G TXT 
♦define G QRP 


12 3 4 5 6a 


^0123 

1111 


特集 GRAPHMAN を使ってみよう 111 








す。 GMAPage は graph 構造体内のデー 
夕を変更しますので,まず GMOpenGrap 
h で graph 構造体を初期化してから指定し 
ます。 

これで以後の作業は display 関数内を書 
き換えるだ'けで OK となりました。グラフ 
マンを使用するプログラムの雛形が完成し 
たわけです。 

-リージヨンいろいろ 

ドキュメントには,レクタングルや楕円, 


ラインデータは, 

yl xsll xell xsl 2.0 x 7 FFF 

y 2 xs 21 xe 21 xs 22.0 x 7 FFF 


0 x 7 FFF 

という形をしています。これは指定された 
Y 座標 y の, X 座標 xs 〜 xe の 間がリージ ョ 
ンに含まれていなければ含め,含まれてい 
るならば外すことを指示する データ 列です。 
設定した状態は,続くライン データに よつ 
て変更されるまで有効となります。ライン 
データの 最後は,先頭 データで ある Y 座標 


•リージヨンを自分で設定する 

ドキュメントにはアセンブラで プロ グラ 
ムを作成するときのリージョンの表記方法 
が付いていますが, C 言語での方法は書い 
てありません。ラインデータがいくつつな 
がるかわからない以上,アセンブラを使う 
ときのように簡単には表記できないのです。 
実際 SXDEF . H にある region 構造体の定 
義では,ラインデータのないレクトリージ 
ョンしか扱えないようになっています。 

解決策のその1は,自分で myRegion 
などの名前で必要なラインデータが入る大 


四円形などでは表現できない複雑な形を表 
現する手段として,リージョンが紹介され 
ています 0 リージョン ( region ) とは領 
域という意味で,表示したい形に外接する 


を 0 x 7 FFF にしてす旨示するようになってい 
ます。 

ドキュメントには例として,四角形が斜 
めに2つつながったような形などがありま 


きさの構造体を定義し,初期値代入でデー 
夕をセットしてしまうことです。ただこれ 
は,すべての region 用に構造体を別途用 
意して,しかも大域変数とすることを考え 


レクタングルと表示の ON / OFF を表現す 
るラインデータから成っています。 


すね。今度はこれを C 言語でやってみるこ 
とにしましよう。 

リスト4 SX - WINDOW のパレツトで描画する 


るとなかなかにみっともないものです。か 
といって, display 関数の局所変数として 


1 

2 

3 

4 

5 

6 

7 

8 
9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 
21 
22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 
61 
62 

63 

64 

65 

66 

67 

68 

69 

70 


#include <stdio.h> 
tinclude <atdlib.h> 
tinclude <sxlib.h> 

/* メモリマンに 液す メモリサイズを 定義*/ 

#define HeapSize 0x20000 

/* GNU C ではヒープが 64K に設定されるので、 

それを 20 0K に 変更す る */ 

lifdef — GNUC_ 

asm( ".xdef _HEAP_SIZE "); 
asm( "_HEAP_SIZE equ 204800"}; 

#endif 

/« ブロトタイフ *& 言 */ 

int SUPER( int ); 

int C_CUROFF(void ); 

int C_CURON(void); 

int C_LOCATE(int, int ); 

int C_WIDTH(int); 

int C_FNKMOD(int ); 

void TXFILL( unsigned short * ); 

void display( void ); 

unsigned short cirdat【J = { /* 0® 消去 用 */ 
2, /« テキストブレーン 3 の */ 

0, 0, /* < 0, 0 )から本/ 

768, 512, /* 横 768 、縦 512 ドットを */ 

0 /* 0TS める */ 


/本 本/ 

graph t_graph; 


rect acr_rect = 
0, 0, 768, 512 


/* graph 構造体*/ 

/木本/ 


rect r_rect = { /* 四 円 体の外接 レクタングル */ 

400, 20, 600,120 

>; 

point_t r_oval = 0X000F000F ; /* 拿 / 

unsigned short ppat[16 ] = { / 本ペンノ、•ターン */ 
OxCCCC, 0xCCCC, 0x3333, 0x3333 , 

0xCCCC, BxCCCC, 0x3333 , 0x3333 , 

0xCCCC , 0XCCCC, 0x3333, 0x3333, 

0xCCCC, OxCCCC, 0x3333, 0x3333 


/* 

* メインメレーチン 

* 初期•終了処理と描画 WSSW 出し 
*/ 

void maim ) 


int sap; 

char *memstart; 

Heap 拿 heap; 

* 初期処理 

*/ 

sap = SUPER( 0 ) : 
if (( mematart =( 


/* ssp 保存用变数 V 


/* スーパーバイザモード^^行*/ 

» )malloc( HeapSize )) == NULL 


71 

72 

73 

74 

75 

76 

77 

78 

79 

80 
81 
82 

83 

84 

85 

86 

87 

88 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 
100 
101 
102 

103 

104 

105 

106 

107 

108 

109 

110 
111 
112 

113 

114 

115 

116 

117 

118 

119 

120 
121 
122 

123 

124 

125 

126 

127 

128 

129 

130 

131 

132 

133 

134 

135 

136 

137 

138 

139 

140 


fprintf( atderr, 
exit(1); 


o enough memory for heap¥n") : 
/* ヒープ用メモリがなけれ以^了拿/ 


heap = MMHeapInit ( merastart , /* ヒーブ<0^/1#9{匕 */ 

(char *)( mem 8 tart + 0 x 20000 ), 

100, NULL, 0 ); 

if ( heap == 0 )( 

fprintf ( atderr , "mm : can•t create heap ¥ n "); 
exit (1); 


C_CUROFF (); 
GMInitialize(); 
GMInitPalet(); 

/* 

* メイン本体 
*/ 

display (); 

/* 

* 終了処理 
*/ 

C_CURON (); 

C_LOCATE( 0, 30 ); 
getch (); 

TXFILH clrdat ); 
clrdat【0 ] =3; 
TXFILL( clrdat ); 
C_WIDTH( 0 }; 
C_FNKMOD( 0 ); 

SUPER( ssp ); 


void display( void 


/* */ 

GMOpenGraph( G_TXT, 


/* カーソル OFF 
/* グラフマン匕 </ 
/本パレット ( DW 匕*/ 


/* カーソル ON */ 

/本 一# TT 本/ 

/* キー入力待ち*/ 

/* テキストブレーン 3 消去*/ 
/* テキストブレーン 4 を*/ 

/* Vft* */ 

768X512 モード */ 

/* フアンクシヨンキー^*/ 

/* ユーザモードへ */ 


&.t_graph ) : /* graphs • 才 — 7* ン拿 / 


GMAPage( 15 ) ; 



/* 

全ページに _ 

拿 / 

/* 画面溃し(背录 e を使用)*/ 






GMBackColorl G BLACK 

); 


/* 

背* •/ 


GMPenMode( G BACK + G PSET 

); 

/* 

ペン モード 雌 

*/ 

GMFillRect( tacr_rect 

); 


ハ 

__ り 潰し 

t/ 

/* 練の描画(前赌を使用”/ 






GMForeColor( G WHITE ); 
GMPenMode( G_FORE + G_PSET 

); 

/* 

/* 

前* 613¢ */ 
ペン モード設定 

本 / 

GMPenSize( 0x00010001 

); 


/* 

ペン サイズ設定 

*/ 


GMMove( 
GMLine( 


0x00100010 

0x01000100 


/* 四円形の枠を描 H ( ペンバターンを使用 )V 
GMForeColor( G_WHITE ) : 
GMBackColor( G_DGRAY ) : 
GMPenMode( G_PPAT + G_PSET ); 
GMPenPat( ppat I; 

GMPenSize( 0x00040004 ) : 
GMFrameRRect( &r_rect, r_oval) 

/* <ASCIIZ> 文物を獅拿 / 

GMForeColor( G_BLACK ); 
GMBackColor( G_WHITE ) : 
GMFontKind( G_ROM24 ); 
GMFontFace( G_ITALIC + G_OLINE 
GMFontMode( G_PSET ) : 
GMFontSize( 0x00300030 ); 
GMMove{ 0x0 0400120 ); /* 

GMDrawStrZ( "abcdefg") : 


(0x10,0x10 > にペンを W® •/ 
<0x100,0x100) まで練を引く拿/ 


/* 

/»ペン モー 
/* ペン バター ン 雌 */ 
/* ペンサイズ艇 */ 

; /* 四円形を描く*/ 


/* 前* */ 

ハ背*615$ */ 

/* フオント!^*/ 

);/* 字体設定*/ 

/* */ 

/* 文字サイズ*/ 

( 0x 4 0,03¢ 120 H: ペンを移勘*/ 
/* 対転*/ 


112 


Oh ! X 1991.2. 








宣言するのはスタックを食い潰してしまっ 
てうまくありません。それならというので, 
使う度に {} でブロックを作るというアイ 
デアは捨ててください。画面に表示されて 
いるリージョンの本体がブロック終了と同 
時に破棄されて残らないというのは問題が 
あるでしよう。 

_ u —ジョン設定の方針 
結局ここでは,汎用性のある関数をひと 
つ作り,これを呼び出すことでデータの 
セットを行うことにしました 。 XC Ver . 2. 
0では ANSI 仕様に沿った方向でバージョ 
ンアップが図られましたが,このとき不定 
個の引数を取る関数を定義する方法もサ 
ポートされています。これを利用すればラ 
インデータがい〈つあっても大丈夫です。 
リージョンにデータをセットするこの関数 
を setRegion と命名しておきましよう。 

リージョンのデータを収める領域は,メ 
モリマンにヒープを分けてもらって作るこ 
とにします。リージョンは, 
struct \ 
int size ; 
rect bounds ; 
short linedata [17]; 

} 

のような形をしています。 linedata を除い 
たものは region 構造体として SXDEF.H 
で定義されていますから,メモリマンに要 
求するヒープのサイズは , 「sizeof (regio 
n ) +sizeof ( short ) X 17」 ということに 
なります。もちろんラインデータの数が多 
ければ,17倍するところは変更する必要が 
あります。 

MMChHdlNew ( sizeof …… ) でメモ 
リマンにヒープを要求すると,メモリマン 
は要求されたサイズのメモリをヒープ領域 

図6リージョンの組成 

(0,0) _ 


(80, 20) 


から切り出し,確保したメモリの先頭アド 
レスを内部の固定領域に収めたあと,その 
固定領域のアドレスを返してくれます。返 
されたアドレスを adrs だとすると,* adrs 
に ヒープから 切り出されたメモリの先頭ア 
ドレスが入っているわけです。実際に確保 
されたメモリを操作するためには,さらに 
その先,っまり** adrs を参照しなけれ 
ばなりません。メモリマンが 「void * * 」 
を返すと最初に説明したのはこのことです。 
メモリマンが返す内部の固定領域のアドレ 
スのことをハンドルといいます。 

受け取る変数のほうもこれに合わせて用 
意します。リージョン分のメモリを要求し 
たのですから, 

region ホ *rgn ; 

rgn = MMChHdlNew ( sizeof .); 

とすれば OK です。え? 要求したサイズ 
は region 構造体のサイズより大きいので 
はない力、,ですって。そのとおり。でも C 
コンパイラはそんな小さなことをウジウジ 
言うほど了見が狭くはありません。 
•リージョン設定の実際 

実際にリージョンを設定するには , SX 
DEF . I - I の region 構造体の定義に若干の修 
正を加えます。 

typedef struct region { 
int size ; 
rect bounds ; 
short linedata [ 0 ]; 

} region : , 

のように , linedata [0] という行を追加 
してください。配列サイズは0ですから , s 
izeof ( region ) は以前と変わりません 0 
ただし, linedata という名前の配列が構造 
体のメンバに加わりましたので,先の例の 
ように17個の short を入れる領域を用意し 


このような形は, 
リージョンで指定 


てやれば , linedata [0 」〜 linedata [16] 
でそれぞれの要素を扱えるようになったの 
です。 setRegion 関数の引数として渡され 
たラインデータを1つずつ取り出し , line 
data 配列にセットしていけばリージョン 
にデータをセットすることができます。こ 
の linedata メンバはぜひとも region 構造 
体に加えていただきたいのですが,シャー 
プさん,いかがですか。 

•リージョンを表示する 

ではリスト5です。インクルードフアイ 
ルに XC Ver . 2.0 に付いてきたヘッダフア 
イル stdarg . h を追加し,プロトタイプ宣 
言のところに setRegion 関数のプロトタイ 
プを追加。メイン関数はリスト4のものを 
使います。そして display 関数をリージョ 
ン表示用に書き換えました。不定個の引数 
を取る関数は,必ず取る引数の宣言のあと 
に「...」•と書いて引数が続〈ことを示し 
ます。 

display 関数では 「region **」を2 
つ宣言して,2つのリージョンを同時に表 
示することにしてあります。では「リージ 

図7正攻法のリージョン作り 


( 0 , 0 ) 




(20 , 80) 


( 100 , 100 ) 


二れをデータで表すと 

46,…… サイズ(これだけがロングワード) 1 region 

0, 〇 , 100, 100,…… リージョンが内接するレクタングル 1 構造体 
0, 0 , 80,0 x 7FFF , …… ( 0,0 ) 〜( 80,0 ) を ON 
20 , 80 , 100, 0 x 7FFF, …… ( 80, 20) ~ (100, 20) を ON 
80, 0 , 20 , 0 x 7FFF, …… ( 0 , 80) ~ (20, 80) を OFF !> ラインデータ 

100, 20, 100, 0 x 7FFF, .(20, 100) — ( 100, 100) を OFF 

0 x 7FFF ……ラインデータ終了 


特集 GRAPHMAN を使ってみよう 113 
















































ョンの塗り潰し」とコメントしてあるとこ 
ろから見ていきましよう 0 まずは size 変数 
に,必要とするリージョンのサイズを計算 
します。ここではラインデータを17個取る 
リージョンを表示します。サイズが計算で 
きたらメモリマンにメモリを要求し,返さ 
れたハンドルを 「region * *」にキャス 
卜して変数に収めます。 

そして次がリージョンのデータセツトで 
す。リージョンのハンドル,リージョンの 
サイズ,リージョンが内接するレクタング 
ル,ラインデータをパラメータとして set 
Region 関数を呼び出します。ドキュメン 
卜のリージョンのサンプルのところに挙げ 
てあった,アセンブラでの記述法と同じよ 


うにデータを並べていけば,指定したリー 
ジョンの ハン ドルにデータがセツトされま 
す。続いてもうひとつのリージョンも同様 
にメモリを確保し,データをセットします。 

色とペンパターンを設定したら最後の仕 
上げ,リージョンの塗り潰しです 。 GMFi 
llRgn 関数で最初のリージョンを塗り潰し, 
2つ目のリージョンは GMSlideRgn 関数 
で横に少しずらして塗り潰します。 

最後に setRegion 関数ですが, stdarg . 
h で定義されている va _ start , va _ arg , 
va _ end の 3 つのマクロを使つて不定個の 
引数に対応します。必ず取る引数の最後の 
ものを va _ start で指定したら,不定個の 
部分は va _ arg を' H するたびにひとつず 

リスト5リージヨンの描画 

■■■■■■■■■■■■■ 


つ取り出されていきます。これを利用して 
リージョンのサイズ,リージョンが内接す 
るレクタングルにデータをセットし,続い 
てラインデータをセットしていきます。最 
後に va _ end を実行してデータのセットは 
終了です。 

この setRegion 関数は,最初から用意さ 
れたライブラリ関数のように使うと便利で 
しよう。ドキュメントにあるリージョンの 
サンプルを,自分で入力して表示してみて 
ください。 

•FURTHER STUDY 

実は SXDEF . H のリージョン構造体の 
宣言を変更しなくてもラインデータをセッ 
卜することができます。リージョンが内接 


23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 
61 
62 

63 

64 

65 

66 

67 

68 

69 

70 

71 

72 

73 

74 

75 

76 


1 

#include <stdio.h> 


77 

/* 




2 

#include <stdlib.h> 


78 

t 

リージョンの設定 



3 

#include く stdarg•h> 


79 

拿 / 




4 

#include <sxlib.h> 


80 

setRegion( rgn f 



5 




81 


size, 



6 

#define HeapSize 0x20000 

82 


10,110, 

40, 

140, 

7 

*ifdef GNUC 


83 


110, 10, 

30, 

0X7FFF, 

8 


asm( ".xdef HEAP 

SIZE "); 

84 


120, 30, 

40, 

0X7FFF, 

9 


asm( " HEAP SIZE 

equ 204800 M ); 

85 


130,10, 

20, 

0X7FFF, 

10 

#endif 


86 


140, 20, 

40 , 

0x7FFF f 

11 




87 


0X7FFF ); 



12 

ハ 



88 





13 

t 

プロトタイプ宣言 


89 

size 

=sizeof( region ) 

+ sizeof( short 

14 




90 

rgnl 

=(region **)MMChHdlNew( size ); 

15 




91 

setRegion( rgnl, 



16 

int 

SUPER( int ); 


92 


size, 



17 

int 

C CUROFF(void ); 


93 


10, 110, 

40 , 

140, 

18 

int 

C CURON(void ); 


94 


110, 20, 

30, 

0x7FFF, 

19 

int 

C_LOCATE(int, int) ; 

95 


120,10, 

40, 

0x7FFF, 

20 

int 

C WIDTH(int ); 


96 


130,10, 

40, 

0x7FFF, 

21 

int 

C_FNKMOD(int ); 


97 


140, 20, 

30, 

0X7FFF, 

22 

void 

1 TXFILL( unsigned 

short 拿 }; 

98 


0x7FFF ); 




void display( void ) : 

void setRegion( region 本尊, long, 




ft 
* 

/* 晒眩 《 酬" 

unsigned short clrdat【]=( 

2 , 

0, 0, 

768, 512, 

0 

); 

• t GRAPHMANffigft 本ノ 

graph t_graph ; 
rect scr_rect = { 

0, 0, 768, 512 

); 

unsigned short ppatt 16 ] = { 

OxCCCC, GxCCCC, 0x3333, 0x3333, 
OxCCCC, 0xCCCC, 0x3333, 0x3333, 
0xCCCC, 0xCCCC, 0x3333, 0x3333, 
0xCCCC, 0XCCCC, 0x3333, 0x3333 

}; 


メインノチンはリスト 4 と同じ 


/< 

« 

*/ 

void display( void ) 
l 

int size ; /* 

region 拿京 rgn; /本 U—S? 3>! 
region 窣本 rgnl; 


= サイズ” 


> ハンドルアドレス */ 


GMOpenGraph( G_TXT, 
GMAPage(15 ); 


&t_graph 


GMBackColor( G_BLACK ); 

GMPenMode( G_BACK + G_PSET ); 

GMFillRect( iacr_rect ); 

ド リージ s ン魄〇潰し*/ 

/» 

* サイズを計算し 

* リージヨンをヒープから得る 

size = sizeof( region ) 4- sizeof( short )*17; 
rgn = (region **)MMChHdlNew( size ); 


99 

100 

101 

102 

103 

104 

105 

106 

107 

108 

109 

110 
111 
112 

113 

114 

115 

116 

117 

118 

119 

120 
121 
122 

123 

124 

125 

126 

127 

128 

129 

130 

131 

132 

133 

134 

135 


GMForeColor( G GREEN ); 

/* 

前 */ 

GMBackColor( G DGRAY ); 

パ 

背 * V 

GMPenMode( G_PPAT + G_PSET ); 

it 

ペンモード設定 */ 

GMPenPat( ppat ); 

/* 

ペンパターン設定 》/ 

GMPenSize( 0x00040004 ); 

/* 

ペンサイズ設定 */ 

GMFillRgn( rgn ); 

/* 

リージヨン塗り溃し */ 

GMSlideRgn( rgnl,0x00300000 ) 

; /* 

rgnl^^mth */ 

GMFillRgn( rgnl ); 

/* 

rgnl を塗り溃し */ 


リージヨンの設定 
SXDEF. H の reg i on の鎌を 
typedef struct region { 
int size ; 
rect bounds; 
short linedata[ 0 J; 

} region ; 

に変更すること 

void setRegion( region ♦♦rgn,long len,...) 

{ 

va_liat 1st ; 
int i; 

va_start(1st,len ); 

(*rgn)->size =len ; 

(>rgn)->bounds.left = va_arg( 1st, int ); 

け rgn} - 〉 bounds.top = va_arg( 1st, int ); 

け rgn) - 〉 bounds•right = va—arg< 1st , int ); 

( 本 rgn>->bound8•bottom = va_arg(1st , int ); 
for ( i=0; i < (len-aizeof(region))/sizeof(short ); i++ 
(*rgn)->linedata( i J = va—arg( 1st, int ); 
va—end< 1st ); 


リスト 6 U ージヨンデータセツト の飛んで る やり方 

void aetRegion( region 拿拿 rgn, long len, •••) 

{ 

va_li8t 1st ; 
int i; 

va^start(1st,len ); 

( 拿 rgn>->size =len; 

for ( L=0; i < (len-aizeof(int))/sizeof(short); i++ ) 
{(short 拿 { 本 rgn>->bound8>t i 】 =va_arg( 1st, int 
va 一 end( 1st ); 


114 


Oh ! X 1991.2. 










するレクタングルは構造体ですが,それぞ 
れのメンバは short であることを考えると, 
struct region \ 
int size ; 


それでは正統派の手続きでリージョンを 
作るとどうなるのかを見ていただきましよ 
う。リスト7です。大域変数はリスト5, 
メインルーチンはリスト4と同じなのでこ 


75) に移動して, rgn との共通部分を取り 
除きます。こうして右下の 25 X 25 ドットも 
欠けた領域ができあがりました。いつもの 
ように描画用の各種データをセットし , r 


short bounds L 4] ; 

} 

と見なすことも可能なのです。 

これを利用すると, setRegion 関数はリ 
スト6のように書き換えることができます。 
ただ,これではなにをやっているのかわか 
りづらくなってしまいます。やはり linedata 
メンバはサボートしてほしいところです。 

正統派の 1 J ージョン描画 

setRegion 関数が用意されていないこと, 
また, region 構造体に linedata メンバが 
ないことを考え合わせると,どうもリージ 
ョンを自分で セッ トするという アプローチ 
は禁止されているのではないかという印象 
を拭いきれません0グラフマンのリフ アレ 
ンスを眺めていると,空のリージョン(ヌ 
ルリージョン)を作る,リージョンとリー 
ジョンの共通部分を得てリージョンとする, 
などの関数がそれを裏づけるかのようです。 

これは,将来リソースエディタがサポー 
卜されたときには, SX - WINDOW 上で 
マウスをちよちよいといじって自由な形の 
リージョンを定義できるようにするからと 
いうことなのかもしれません。早くリソー 
スエ デイタとリ ソース コンパイ ラを サボー 
卜してほしいものです。 


こでは省略してあります。また, point_t 
を16進数で指定するのはやっかいなので, 

プ ログラムの最初で X _ Y というマクロを 

定義してあります。 

display 関数を見てみましよう。ここで 
はリージョンのハンドルを3つ用意しまし 
た。 rgn は描画するリージョンを作成する 
ため, rgnl , rgn 2 は途中の加工用です。 
最初に GMNewRgn 関数で,新しいリー 
ジョンを作成します。ここで作られるのは 
大きさのないヌルリージョンです。具体的 
にはリージョンが内接するレクタングルが, 
(0, 0) —(0, 0) となっています。そこでリー 
ジョンが内接するレクタングルの右下の座 
標を変更し, rgn は(0,0)-(100,10 0) に , r 
gnl は(0, 0) -(25, 25) に, rgn 2 は(0, 0) - (5 
0,5 0) にします。これで3つのヌルリージ 
ョンは,長方形の領域を表すレクトリージ 
ョンになりました。 

まずは rgn と rgnl から重なった部分を G 
MXorRgn で取り除いたリージョンを作 
成し,それを rgn にセットします。つまり 
rgn は左上の 25 X 25 ドットが欠けた領域に 
なるわけです。続いて GMMoveRgn で rg 
n 2 を(25, 25) に移動し,再び rgn との共通 
部分を取り除きます。これで rgn は左上の • 
25 X 25 ドット,真ん中の 50 X 50 ドットが欠 
けた領域になりました。最後に rgnl を(75, 


gn を (300, 200) に移動して表示すれば disp 
lay は終了です。 

* 

グラフマンのドキュメントをベースに, 

C 言語でダラフマンを使う方法を摸索して 
みました。ここではリスト4でテキスト4 
プレーンを使用する方法を示し,以後それ 
を使ってプログラムしてきましたが , GM 
InitPalet を呼び出さなければ従来どおり 

の文字2プレーン,システム2プレーンの 
構成で扱うこともできます。このときは G 
_WHITE などのマクロの代わりに,〇〜 3 
のカラーコードを 直接指定して描画すると 
いいでしょう。 

リスト5ではグラフマンがサポートして 
いないリージョンの直接生成まで行ったた 
め,キヤストやポインタが嵐のように登場 
して C 初級.中級の方には難しかったかも 
しれません。勉強材料だと思って発奮して 
みてください。ここでは取り上げませんで 
した力 ? ,グラフマンが現在のグラフィック 
カーソルの 位置から線を引くという特徴を 
利用して,タートルグラフィックライブラ 
リを構築することも可能です。 

グラフマンはまだまだ多くの関数を抱え 
ています。 GMOpenRgn などを使うと, 
さらに複雑なリージョンも作れるのかもし 
れません。楽しく遊べそうです。 


1:# include <stdio.h> 

2: tinclude <stdlib.h> 

3: #include <sxlib.h> 

4 : 

5: #define HeapSize 0x20000 
6: #define X_Y(x,y) (x)*0x 10000+ (y) 
7 : #ifdef __GNUC__ 

8: asm! ".xdef _HEAP_SIZE” ); 

9 : asm( "_HEAP_SIZE equ 204800" ); 

10: #endif 
11: 

12: /* 

13: * ブロトタイブ宣 a 

14 : */ 

15 : 

16: int SUPER( int ) : 

17: int C_CUROFF(void); 

18: int C_CURON(void); 

19: int C_LOCATE(int, int); 

20: int C_WIDTH(int); 

21:int C_FNKMOD(int ); 

22: void TXFILL( unsigned short * ); 

23: 

24 : void display( void ); 

25: 

26: /* 

27 : 本 はリスト 5 と 

28: » メインルーチンはリスト 4 と同じ 

29: */ 

30: 

31: void display( void ) 

32: { 

33 : /* 

34 : 本 リージ 3 ンの組み合わせで 

35 : * 新しいリージョンを作る 

36 : 本 / 

37: region **rgn , 本本 rgnl, 拿 * rgn2; 

38: 

39: GMOpenGraph( G TXT, &t graph ); 

40: GMAPage(15 ); 

41: 


リスト 7 正統派の U —ジョン描画 

42 : 
43 : 
44: 
45 : 
46: 
47 : 
48 : 
49 : 
50: 
51: 
52 : 
53 : 
54: 
55 : 
56: 
57 : 
58 : 
59 : 
60 : 
61 : 
62 : 
63 : 
64 : 
65 : 
66 : 
67: 
68 : 
69: 
70: 
71 : 
72 : 
73: 
74 : 
75 : 
76: 
77 : 
78: 
79: 
80: 


GMBackColor( G_BLACK ) ; 

GMPenMode( G_BACK + G_PSET ); 
GMFillRect( &acr_rect ); 

/* 

* 作成するリージョン 
*/ 

rgn = GMNewRgn (); 

(*rgn)->bounds.right = 100 ; 

(*rgn)->bounda.bottom = 100 ; 

/< 

« 作成補助用のリージョン 

*/ 

rgnl = GMNewRgn (); 

<<rgnl)->bound8.right = 25; 

(<rgn1)->bounds.bottom = 25; 

rgn2 = GMNewRgn (); 

(*rgn2)->bounda.right = 50; 

(*rgn2)->bounds.bottom = 50; 

/* 

* XOR は重なった部分を取り除く 
*/ 

GMXorRgn( rgn, rgn, rgnl); 
GMMoveRgn( rgn2, X_Y( 25, 25 )); 
GMXorRgn{ rgn, rgn, rgn2 ); 
GMMoveRgn( rgnl, X_Y( 75, 75 )); 
GMXorRgn( rgn, rgn, rgnl); 

GMForeColor( G_RED ); 

GMBackColor( G_YELLOW ); 

GMPenMode( G_PPAT + G_PSET ); 
GMPenPat( ppat ); 

GMPenSize( X_Y( 4, 4 )); 

GMMoveRgn( rgn, X_Y( 300, 200 )); 
GMFillRgn( rgn ); 


特集 GRAPHMAN を使ってみよう 115 








特集 2 SX - WINDOW プログラミング 


SXLIFE Part II 

ポップアップメニューの追加 


前回、ともかく何かを作ってみようということでお届けしたの 
がディスクにも入っていたライフゲームです0そこで今月から 
数回にわたって、 SX - WINDOW 用のソフトらしくするための 
機能を加えていきましょう。最初はポップアップメニューです。 


Nakamori Akira 中森章 


1100% の SXLIFE 

先月のオマケディスタに入っていた sx 
LIFE はもう動かしてもらえたでしようか。 
これは私が SX - WINDOW 上のアプリケ 
ーションとして作った記念すベき第1号な 
のです。しかし,あの時点では時間的制約 
と私の不勉強のせいで最初イメージしてい 
た100%の SXLIFE にはなりませんでした。 
そこで, SXFILE を真の姿に近づけてい 
こうというのが本稿の意図です。 

ところで,オマケディスク用のプログラ 
ムを編集部に渡した直後, UNIX の JUN 
ET で X 68000 のニュースグループに奇しく 
も 同 じ SX - WINDOW 上のライフ ゲーム 
が投稿されていたので,ライバル意識を持 
って実行してみたところ非常にショックを 
受けてしまいました。とにかく動きが高速 
なのです。確かに最高速で動作させると他 
のウインドウの動き力 ? 重くなってくるので 
すが,そんなのは言い訳になりません。こ 
のままでは悔しいので私の SXLIFE も今 
ではより高速に改造してしまいました。 

今回の連載ではこの高速化技法について 
は特に説明しませんが,要点をいうと1行 
処理をさらに高速化して処理単位を10行に 
したということです。結果として JUNET 
版と同程度の速さになったと思います(他 
の ウィン ドウ理もそれほど重くなってい 
ません)。興味のある人は改造してみてくだ 
さい。 

さて,100%の SXLIFE とはなんでしよ 
う。ここですべてを明かすのは面白くあり 
ませんから,今月,来月と小出しにしてい 
くことにします(私自身もそれを実現でき 
るかどうかはこれからの勉強次第なので大 
口はたたきたくない)。とりあえず,今月 
116 Oh ! X 1991.2. 


ではポップアップメニュー処理を追加しま 
す。 

メニューを使う手順 

オマケデイスタの SXLIFE はドットの 
初期設定を右ボタンで行うようにしました。 
単純なドットの設定と消去のみをサポート 
していたのみですが,本来なら右ボタンは 
ポップアップメニュー(名前が長ったらし 
いので以下では単にメニューといいます) 

の項目選択に割り当てたいものです。そし 
て,ドットの設定と消去のほかにも SXLI 
FE のバージョン説明や画面の全消去ぐら 
いの選択肢を持たせるべきだったと思って 
います。というわけで,さっそくこの機能 
を実現することにします。 

f 列によって,いろいろなアプリケー シヨ 
ンの ソース や実行形式オブジェクトの逆ア 
センブルリストを必死に解析したところ, 
メニュー機能の実現には次の3つのステッ 
プを踏んでいることがわかりました。 

#メニューの初期化 
•メニューの表示と項目選択 
#プログラム終了時の処理 

これらの手順を SXLIFE に取り込んで 
やればよいのです。それぞれの項目につい 
て実際の手順を説明しましょう。 

メニューの初期化 

メニュー の初期化とは メニュー の実体を 
作成することです。そのためには メニュー 
を実現するために十分なだけ (20 バイト+ 
a ) のメモリ領域を確保して,そこに メニ 
ュー 情報を書き込めばぉしまいです。この 
メニュー 情報として次のようなものを決定 
しなければなりません。 


•メニュー ID (オフセツト〇) 

0か1を設定します。これはメニュー定 
義関数(あとで説明)のリソース ID です。 

•メニュー定義関数への八ンドル 
(オフセツト B ) 

ハンドルとは C 言語でいうボインタのポ 
インタみたいなもので,その指し示す先に 
ある データが 実体へのアドレスとなってい 
ます。メニュー定義関数とは表示するメニ 
ューの形状を決定するリソースで, 

_ RMRscGet 

という SX コールで 獲得できます。そのと 
きには,第1引数(あとからスタックに稂 
まれるほう)を ‘ MDEF ’ という32ビット 
文字定数に,第2引数(先にスタックに積 
まれるほう)を上で出てきた16ビットのメ 
ニュー ID (種類)にします。メニュー ID 
として現在は0と1のみしかサポートして 
ないようです〇 0がタイトルなしメニュー 
(図 1), 1がタイトルありメニュー(図 2) 
のようです。 

•メニューアイテムの許可フラグ 
(オフセツト 10) 

メニューアイテムとはメニューの中に表 
示されている文字列のことです。マウスカ 
ーソルを持って行くとそこが反転してメニ 
ューが選択されていることを示すアレのこ 
とです(図3)。 SX - WINDOW では (M 
acintosh と同じく),たとえメニューの中 
にあるアイテムでも,状況によってはそれ 
を選択することができないように設定する 
ことができるようになっています(このと 
き選択できないアイテムは他のアイテムよ 
り薄〈表示される)。それを実現するのが 
この許可フラグです。 

メニューアイテムにはメニュー内で上か 
ら順に1, 2,3,……と番号が付けられ 
ていて,その番号に対応するビット位置を 








0 にした32ビットデータが許可フラグにな 
ります。したがってすべてのアイテムが選 
択可能なメニューでは許可フラグはオール 
1になります。また,許可フラグのビット 
0には意味がないようです。また,許可フ 
ラグのビット数から推測できるように,メ 
ニューアイテムの最大は31個になります。 
•メニュー^のテ^ 

(オフセット 14) 

タイトルありメニューを使用するとき, 
メニューのタイトルが格納されているメモ 
リ上のアドレスを設定します。メニューの 
タイトルは最初の1バイトがタイトルの長 
さ(バイト数)を表し,2バイト目以降が 
文字列です。もちろん,タイトルなしメニ 
ューの場合は設定する必要はありません。 
•メニューアイテム数(オフセッ MB ) 

メニューアイテムの総数から1を引いた 
値を設定します。 

氺 

メニューを使用する場合,少なくとも以 
上のメニュー情報を設定しなければなりま 
せん(各情報の正確なバイト数はドキュメ 
ントを見て〈ださい)。これが先に20バイ 
卜+ぴと述べたうちの20バイト分で,残り 
の+びはこれに続く メニューのアイテムデ 
ータ情報です。1つのアイテムデータは次 
のような構造をしています。 

•ショートカットコード (1 バイト) 

ASCII コードの1文字です。これはメニ 
ューアイテムを選択したのと同じ効果をキ 
ーボードのキー入力で実現するためにはど 
のキーを押したらいいのかを表示するため 
の文字です。ここに 41 h (’ A ,) と書かれ 
ていたら A キーを押したときにそのメニュ 
ーアイテムを選択したのと同じことになり 
ます0ただし,プログラムをそのように(キ 
一入力対応に)書いておかなければまった 
く無意味です。ショートカットコードが必 
要ないときはここに0を書いておきます。 
•チェックマーク (1 バイト) 

ここに0以外を書いておくとメニューア 
イテムを表示するとき,横にそのアイテム 
がすでに選択されていることを示すチヱッ 
ク マーク (,レ’というような記号)が同時 
に表示されます。これは単なる表示にすぎ 
ませんからチェックが付いたメニューアイ 
テムがどのような意味を持つかはプログラ 
ム任せです0 


•表示文字列 

メニューアイテムとして表示する文字列 
です。最初の1バイトが文字列のバイト数 
を示し,それ以降が実際の文字列です。 

* 

このメニューアイテム情報がメニューア 
イテムの個数だけ続くのです。ここで注意 
すべきことは,ショートカットコード,チ 
エックマーク,表示文字列の長さの合計が 
偶数バイトになるようにしなければならな 
いという点です。つまり,全体が偶数バイ 
卜になるように表示文字列の長さを調整し 
なくてはなりません。これに違反するとメ 
ニューを表示するときにアドレスエラーを 
起こしたり,グチヤグチヤなメニューが表 
示されたりします。 

最後になりましたが,メニューのための 
メモリ領域を確保するためにも SX コール 
を使用します。それは, 

_ MMChHdlNew 

という SX コ-•ルで,引数としてメニュー 
に必要な20バイト+ a のバイト数を与えま 
す。最初のうち,私はメモリ領域を SX コ 
ールでわざわざ確保しなくてもプログラム 
内のデータ領域を使用すればうまくいく 
(もちろんメモリ領域へのハンドルもどき 
を作る)と考えていました。しかし,それ 
をやると全然メニューが表示されなかった 
ので,あっさりと他のプログラムで行って 
いるメモリを確保する方式に乗り換えてし 
まったことを白状しておきましよう(そう 
するとうまくいった)。 

以上がメニューの初期化プログラムのす 
ベてです。私が実際に書いた初期化プログ 
ラムをリスト1に示しておきましよう。ほ 
とんどコメントを付けていませんが何をし 
ているかはわかりますね。ここではメニュ 
一の初期化時にエラーが発生してもなにく 
わぬ顔をして処理を終了しています。これ 
は,たとえメニューが使えなくてもライフ 


ゲームを実行させようというためです(単 
なる手抜きという意味もあったりして)。た 
だ,エラーがあったかどうかは _ useMenu 
( a 5) という変数の値でわかるようになっ 
ています(プログラム終了時に参照する)〇 
なお,リスト1の initMenu 関数はウイ 
ンドウをオープンしたあと,ライフゲーム 
の初期化を行う直前で呼べばいいでしょう。 


メニューの表示と項目選択 


いよいよメニュー処理のハイライト(ウ 
ィンドウのハイライト表示とは無関係です 
よ)であるメニューの表示と項目選択です。 
これは,メニューを表示したあと,マウス 
カーソルを追い続け,マウスカーソルがあ 
るメニューアイテムを指していたらそこの 
表示色を反転し,メニューアイテムを指し 
ながらマウスの(右)ボタンが離されたら 

図1 タイトルなしメニュー 


ラ 

ーメン 

ギ 

ョ ー ザ 

レノじ 

ニライタメ 

チヤ . 

—ンユ ー 

ノ 

【ンマ 

シ ュー マイ 


図2 タイトル付きメニュー 

; 正き H 

ウルトラマン 

: 仮面ライダー 

ポワトリン 
; キカイ ダー 

デビルマン 
イコちやん 


図3 メニューアイテム 


ィカ 

— 1 


イカ 

タコ 

— 


タコ 

マグロ 

— 

それぞれが 

マグロ 

ハマチ 

— 

メニューアイテム 


イクラ 

— 


イクラ 

ウニ 

— 


ウニ 


マウスで 
“ハマチ” 

を選択すると 


特集ポップアップメニューの追加 117 



















ポップアップメニューの例 

そのアイテム番号をプログラムに知らせる, 
という複雑な処理をしなくてはなりません。 
考えただけで絶望的な気持ちになってきま 
すね。でも心配はいりません。これら一連 
の処理を行ってくれる SX コールが SX-W 
INDOW では用意されています。それが, 
_ MNSelect 

という SX コールです 0 これに メニューへ 

のハンドル ( _ MMChHdlNew で求め 

た値)と,マウスの右ボタンが押された位 
置を引数として渡せば,一連のメニューの 
項目選択処理を行ったあと,選択されたメ 
ニューアイテムの番号をレジスタ DO に入 
れて返してきます。この番号にしたがって 
メニューアイテムに対応する処理を行えば 
いいのです。 

メニューの 選択処理を SXLIFE に組み 
込むにはちょっとした工夫が必要です。な 
ぜ なら, メニュー 処理は マウスの 右ボタン 
で 行うことを基本とします力 5 ', SXLIFE 
にはライフ ゲームの ドットを設定(あるい 
は消去)するという機能を右ボタンに持た 
せてあります。 SXLIFE の操作性自体は 
大きな変更をしたくない(本音は左ボタン 
が押されたときのイベント処理は書き換え 
たくない) ので 姑息な手段を用いることに 


します。つまり,ドットを設定するモード 
にあるとき,すなわち userWRK ( a 5) とい 
う変数の値が0でないときは今までどぉり 
ドットの設定 • 消去処理を行います。 
userWRK ( a 5) の値が0であるとき(こ 

れが初期値)は_ MNSelect でメニュー 

処理を行います。古い版の SXLIFE では 
マウスの右ボタンが押されると無条件に u 
serWRK ( a 5) の値は1になりましたが,新 
版の SXLIFE では メニュー によって「ド 
ットの設定」が選択されたときに userWR 
K ( a 5) が1になります 。 userWRK ( a 5) を 
0に戻すのは古い版と同じくマウスの左ボ 
タンが押されたときです。こうすることで 
古い版に対して最小の修正量で SXLIFE 
にメニュー 処理を組み込む こ とができます。 

リスト2にマウスの右ボタンが押された 
ときのイベント处理のすべてを示します。 
古い版の SXLIFE に対してどこが変更に 
なったかはわかりますね。 

リスト2で行っている選択されたメニュ 

ーアイテム ( _ MNSelect の返り値)に 

対する処理をまとめると次のようになりま 
す(リスト1のメニューアイテム定義も併 
せて見てくださいね)。 

〇…項目選択なし(何もしない) 

1 -" SXLIFE についての情報を表示 
2…許可フラグで禁止されているので 
選択されない(単なる飾り) 

3…画面を初期化(ドットの全消去) 

4…ドットの設定 • 消去(従来どぉり) 

5…何かをする(実は何もしない) 
といったぐあいです0 メニューアイテム3 
の画面の初期化処理 ( initMap ) が少しや 
やこしい(結構技巧的な処理をやってい 
る)けれど全体の流れはわかるでしよう。 

リスト1 


プログラム終了時の処理 

プログラムを終了するときには, SX コ 
ールで確保したメニューのための領域を解 
放(捨てる)することが必要になります。 
このためには, 

_ MMHdlDispose 

という SX コールを 使います(リスト1で 
もメニュー定義関数が得られなかった場合 
ひっそりと この SX コールを行って いた こ 
とに気づきました力 1 )〇 この SX コールの 引 

数には メニユーへ •の ハンドル ( _ MMC 

hHdlNew で求めた値)を与えます。ただ, 
メニューの 初期化が失敗しているときは, 
このような処理は必要ありません(やると 
かえって悪い)。具体的には変数 _ useMe 
nu ( a 5) の値が0のときは SX コールを 発 
行せず,1のときのみ発行するようにして 
います。このリストはあまりにも簡単です 
から必要ないでしよう。 

I さて来月は 

メニュー処理の追加は思っていたよりも 
簡単にできてしまったというのが実感です。 
まあ,メニュー処理は100%の SXLIFE の 
ための過程でしかありませんから当然とい 
えば当然でしよう。私が真にやりたかった 
のはもっと別のことなのです。それを実現 
するためにはメニューによる行動選択が是 
非とも必要になってくるので,今月はワン 
クッション置いてみました。さて,来月は 
ベールを脱ぐと思われる100%の SXLIFE 
とはなんなのでしよう。乞うご期侍という 
ところですね。 


clr. w 

-(sp) 

move.1 

t-MDEF 1 ,-(sp) 

.dc.w 

— RMRacGet 

addq.1 

#6 ,ap 

tst .1 

d0 

bmi 

menuRaGetErr 

move•1 

roenuHdi(a5) 9 a2 

move.1 

Ta2) f a2 

move•1 

aO f 6(a2) 

move.b 

#1 f _useMenu(a5) 

move.1 
rta 

<sp い, a2 

menuAllocErr : 

move•b 

#0,_useMenu(a5} 

move•1 
rts 

(sp)+,a2 

menuRsGetErr: 

move•1 

_menuHdl(a5) , - (ap) 

.dc.w 

— MMHdlDispose 

addq•1 

#4 ,sp 

move•b 

#0 t _useMenu(a5) 

move.1 

(sp)+ f a2 


* 断たな奴激 « _menuHdl(a5) :£^咖 
尊 uaeMenu(a5) 

t 

寒拿拿拿拿拿家塞寡塞 ttft 拿蓴拿 t 拿專 

窠メニユー匕 

• even 
; u: 

move. 1 a2 , ap) 
move.1 f(mProtEnd-mProt) , - (ap) 
.dc.w — MMChHdlNew 

addq.1 #4 t sp 

move•1 d0,_menuHdl(a5) 
ble menuAllocErr 

move•1 d0,a2 

move.1(a2),a2 
lea mProt(pc),a0 

move•w #(mProtEnd-mProt) f d0 


imLoop : 


move.b (a0)+•(a2) 
dbra dO,imLoop 


25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 


118 Oh! X 1991.2. 













末メニュー翻 (20 ハーイト) 


0 

0 

0 

0 

Sfffffffb 

0 


許可フラグ 


62 


.dc. 

w 

4 ;; アイテム数一 1 


63 

窶 





64 

* メニ 

.ユーアイテム 



65 

% 





66 

ml ten 

a: 




67 


.dc 

b 

$00,$0O,$0f,'SXLife について , 

:;18 Byte 

68 


.dc 

b 

$00,$00,$09, ».* 

;;12 Byte 
1,6 Byte 

69 


.dc 

b 

$00,*00 , $0d, ヒ, ; 

70 


.dc 

b 

$00,$00 , *0d,’ ドットの設定, : 

$00 , $00 , $0d ,, なにか ^ する, : 

16 Byte 

71 


.dc 

b 

16 Byte 

72 


.dc 

b 

$00 



mProtEnd : 


リスト2 


* マウスダウン ♦ イベント時の班:理(右ボタン) 

拿*拿本《拿拿蓴拿<<<拿*拿拿拿***拿袁寒*拿蓴 


.even 

EV MSRD0WN : 


6 


movem.1 

dl~d7/al-a5,-(sp) ;; 

レジスタを 保存 

98 


divu 

#12,dl 

7 

拿 




99 


move.w 

dl , - (sp) 

8 

* 自分のウインドウ カ咬 jPK る 


100 


move.w 

d2,-(sp) 

9 

拿 




101 


lea 

fieid(a5) f a 1 

10 


move.1 

evntRec+with(a5) f d0 


102 


lsl.l 

#6,d2 

11 


beq 

retMSRDOWN ;; 

どのウインドウにも該当しない 

103 


lea 

(al,d2.w),al 

12 


cmp.1 

wPointer(a5),d0 


104 


lea 

(al 9 dl.w) 9 al 

13 


bne 

retMSRDOWN 

他のウインドウだった 

105 


move.1 

wPointer(a5) ,- (sp J 

14 

拿 




106 


.dc • w 

— GMSetGraph 

15 

* カレントボー>にセツ 

h 


107 


addq.1 

^4 ,sp 

16 

t 




108 


tst.lj 

(al) 

17 


move • i 

d0,-(sp) 


109 


beq ^ 

nonExist 

18 


.dc. w 

— GMSetGraph 


110 


bsr 

preset 

19 


addq.1 

念?, sp 


111 


clr. b 

(al) 

20 


move.1 

a0 ,a2 


112 


bra 

cmnMSRDWN 

21 


tst. w 

active(a5) 


113 

nonExist 



22 


bne 

procMSRDOWN ;; 

前からアクティブだった 

114 


bsr 

pset 

23 


move. w 

1 1,active(a5) 


115 


move.b 

寧 _al) 

24 


move. w 

#Sffff f evntMsk(a5) ;; 

イベントマスクをセット 

116 

cmnMSRDWN : 


25 

% 




117 


addq.I 

弇 4,sp 

26 

* ウインドウを切り替える 


118 

noAction : 


27 

本 




119 


move.1 

wPointer(a5) , - (sp) 

28 


pea 

(a2) 


120 


.dc. w 

一一 WMDrawGBox 

29 


.dc. w 

„WMSelect ;; 

自分をセレクト 

121 


addq.1 

ネ 4,sp 

30 


addq.1 

パ , sp 


122 

本 



31 


.dc . w 

EMRStill ;; 

右ボタンが押されたままか 

123 

> イベントレコードをのぞく 

32 


tst.1 

d0 


124 

t 



33 


beq 

noStillMSRDOWN 


125 

noStillMSRDOWN : 


34 


move.1 

evntRec+where(a5) , - (sp) 


126 


pea 

evntRec(a5) 

35 


• dc. w 

„WMFind 

座樣がウインドウのどこにあるか 

127 


move.w 

evntMsk(a5)(sp) 

36 


addq•1 

ネ 4 , sp 


128 


.dc . w 

— TSGetEvent 

37 


crop • w 

?? inContent ,d0 


129 


addq.1 

^6 t sp 

38 


bne 

noStillMSRDOWN ;; 

コンテントリージヨン以外 

130 

t 



39 

本 




131 

* 今回の状 ffi をセーブ 


40 

« マウスの座抜を知る 



132 

t 



41 

% 




133 

retMSRDOWM: 


42 

procMSRDOWN : 



134 


movem,1 

(sp)+,dl-a//al-a5 

43 


tst. b 

userWRK(aS) ;; 

艇モードか 

135 


rts 


44 


bne 

dotSetReset 


136 




45 

1 1 




137 

errMSRDOWN : 


46 

** メニュ • 

一を表示する 



138 


moveq.1 

¢-1 ,d0 

47 

tt 




139 


bra 

retMSRDOWN 

48 


move.1 

evntRec+where(a5)(sp);; 

ここからがメニュー処理 

140 




49 


move.i 

_menuHdl(ao),-(sp) 


141 


.even 


50 


.dc. w 

— MNSelect 


142 

initMap : 



51 


addq.1 

;5-sp 


143 


movem.1 

dl/d3/d4/al , - (sp) 

52 


ts t. b 

d0 


144 


move.L 

wpointer(a5)(sp) 

53 


beq 

doMenuO 


145 


.dc. w 

— GMSetGraph 

54 


cmpi.b 

亡 3,d0 


146 


addq.1 

: 了 , sp 

55 


bit 

doMenu1 


L47 

t 



56 


beq 

doMenu3 


148 


move.w 

ネ ( 64«DispHigh い U,dl 

57 


cmpi.b 

ネ 5 , d0 


149 


moveq.1 

;0,d3 

58 


bit 

doMenu4 


150 


moveq.1 

;0,cU 

59 


beq 

doMenuo 


151 


lea 

_field(a5},al 

60 


bra 

noAction 


152 

clrLoop: 



61 





153 


bclr.b 

キ 0,(a U + 

62 

doMenuO 




154 


beq 

clrSkipl 

63 


bra 

noAction ;; 

迸択されなかった 

155 


move•w 

d4 , - {sp) 

64 





156 


move.w 

d3 , - (sp) 

65 

doMenu1 




157 


bsr 

preset2 

66 


pea 

aboutMess(pc) 


158 


addq.1 

-4 , sp 

67 


move. w 

41 , - (sp) 


159 

clrSkipl: 


68 


dc. w 

„DMError 


160 


addi.w 

ネ 12,d4 

69 


addq•1 

^6 , sp 


161 


cmpi.w 

ネ <64 拿 12>,d4 

70 


bra 

noAction 


162 


bcs 

cirSkip2 

71 





163 


addi.w 

#12 , d3 

72 

aboutMess : 



164 


move.w 

ネ 0,d4 

73 


.dc. b 

,ライフ ゲーム by 中森童,, ,S0d 


165 

clrSkip2 : 


74 


.dc.b 

’ Mov, 28,1990*,0 


166 


dbra 

dl f clrLoop 

75 





16.7 

t 



76 


• even 



168 


move.1 

n 1,_xhold(a5) 

77 

doMenu3 




169 


move•1 

ネ -1,_nv0(a5) 

78 


bsr 

initMap 


170 


lea 

_vs0(a5),a 1 

79 


bra 

noAction 


171 


move.1 

al>_vp0(a5) 

80 





172 


lea 

_vs1(a5),al 

8L 

doMenu4 




173 


move•1 

a 1 t —vp1(a5) 

82 


move.b 

4 L 9 userWRK(a5) ;; 

描画をロックする 

174 


lea 

_ys0(a5),a 1 

83 


bra 

noAction ;; 

ロックのボタン 

175 


move.1 

a 1 # _yp0(a5) 

84 





176 


lea 

_ys1(ao),al 

85 

doMenu5 




177 


move.1 

al ,一 ypUa5) 

86 


bra 

noAction 


178 

拿 



87 





179 


move.1 

wPointer{a5) ,- (spl 

88 

dotSetReset: 



180 


• dc.w 

— WMDrawGBox 

89 


.dc. w 

EMMSLoc 


181 


addq.1 

#4 ,sp 

90 


ts t.1 

dO 


182 


movem.1 

(sp)+ f dl/d3/d4/al 

91 


bmi 

errMSRDOWN 


183 


rts 


92 


move.1 

d0,dl 







moveq.J 
move.w 
swap 
move.w 
divu 


♦ 0,d2 
#0,dl 
dl 

d0,d2 
#12,d2 


水平 

垂直 


ク'ローボックスを害き直す 


イベントレコード 
イベントマスク 


/レープ回数 
X ® 標 

ym. 


変数類の 4 /細匕 


グローボックス描き®し 


特集 


ポップアップメニューの追加 119 














「 SX エンターテイメントキット J 計画 

Ogikubo Kei 获塞 圭 


寒い日はガスフアンヒーターをがんがんにつけて,バイクは転がさずにマウ 
スを転がす。それが正しい日本の冬というもの0それにつけても,マウスの 
おともに欲しいものがありませんか? そこで,ぼくらの SX - WINDOW に 
味わい深いスモールアプリケーシヨンを用意したいナ,というお話です0 


•とりあえず前置吉を 

最近,お家の事情があっていろんなバソコ 
ンのウインドウシステムを触っているのだが, 
皆さんそれぞれ癖があって面白い。 

なかでも Macintosh がいちばん可も不可 
もなくまとまっている気がする。長年の蓄積 
があるからね。 Macintosh が出てからもう 
6年もたったのだから,洗練されてなければ 
嘘になる0ただあれは,ウインドウシステム 
のイメージとはちょっと違う。アプリケーシ 
ョン1つひとつが全画面を専有してしまうか 
らだ〇ウインドウシステムというと,1アプ 
リケーション1ウインドウというイメー ジが 
ある。ないか?まあ,イメージの問題だ。 
MS-WINDOWS 3. 0や NeXT はそうなっ 

ている。アプリケーションは自分のウインド 
ウだけしかいじらないよ,ってことだ。 Ne . 
X 丁になると,アプリケーション間通信って 
な高度な技があっていいのだが,あいつは68 
040であって,68000の X 68000 より40も大きい0 

もっとも, NeXT は UNIX マシンであって, 
パソコンと いうのもなんだ が,ハイエンド P 
C として売っていきたいようなことをキヤノ 
ンの人はいっていた。当のジョブズさんも, 
そうとらえているような気はする。 

MS - WINDOWS 3. 0はまだ日本語版が出 
ていないのでよくわからない力 5 ',世間で騒い 
でいるほど使いやすいものではない。アプリ 
ケーションを動かすのは楽でいい力す,インス 
トールがやけに面倒だったり,プログラムマ 
ネージャとファイルマネージャが別々に存在 
していて,ファイル管理がうっとうしいなど 
の欠点を持っている。 

SX-WINDOW はウインドウのアイコン 
化ができない点を除けば,とてもいい線をい 
っていると思う。 

まあ,この詳細な比較は来月号にでもレポ 



ートするとして, SX - WINDOW がどのウイ 
ンドウシズテムにも勝てないところといえば, 
アプリケーシヨンがないことだ。 

SX - WINDOW でもソフトが欲しい。そ 
ういうわけである。 

•ウインドウアブリの原点は7 

まず何から始めよう力 1 。「大人のための X 6 
8000」などというあやしい連載を抱える身と 
しては,一応,ビジネスソフト(と一般的に 
いわれている類のソフト)が欲しいといって 
おくべきだろうが,ゲーマーとしての私はや 
はりアミューズメント系のウインドウが欲し 
いのである。こういうときは「大人のための 
SX - WINDOW 用ゲーム」が欲しいといっ 
ておけば事足りるといゲことになっているの 
で,そういっておこう。しぶいウインドウデ 
ザインには大人のためのゲームが似合うのだ。 
へへへ。アダルトゲームといってもいいそ、、。 

さて, 「 SX エンターテイメントキット」と 
いうのは, SX - WINDOW 用の小さなゲー 
ムがいっぱい詰まったデイスクのことである。 
米マイクロソフト社が MS - WINDOWS 用に 
出している 「 MS エンターテイメントキット」 
から名前を抨借した。このディスクには,小 
さなウインドウひとつで済むようなちょっと 
したゲームがいくつも収められている 。 「He 
x TETRISj なんていう,四角ではなく六 
角形のブロックを使うやつも収められている 
が,傑作はマインスイ ーノぞ一っていうパズル 
だ。 

暇潰しに最適な,ちょっとしたソフト。そ 
れでもって,そいつに収められたソフトはみ 
な他愛ないもの。が , Yet Another Col din 
n にみんなが ハマった ように,ああいう舉純 
なゲームにこそ真髄が隠されているのだ。今 
こそ,原点に帰るべきだ。 

•要するにゲーム集 
「 SX エンターティメントキット計画」は, 
そういうソフトを Oh ! X で用意しようという 
温かい計画である。あくまでも計画である。 
用意できるかどうかはまったくわからない。 

なぜなら,キットに収めるゲームは,読者 
から募集するからである。私は作らないで 
(作ってみたいとは思っているが),ただ,投 
稿を待っているのである。 

どんなソフトが向いているか。 


小さなウィンドウで済むもの。立ち上げた 
まま,いつもは裏に_、しておき,やりたくなっ 
たらアクティブにする。 

、ラムズなんて最適。 

ぼおっと,マウスひとつで遊べるもの0 

先月ディスクに入っていた,クロンダイク 
なんかはそうだ。そのテのカードゲームもい 
いかもしれない。ポーカーなんかのギヤンブ 
ル系ソフトも見逃せない0競馬ソフトを作っ 
て,実際の レースは 裏で マルチ タスク,なん 
てのも楽しそうだ。競馬はつねに行われてお 
り,ときどき,競馬ウィンドウをアクティブ 
にして,次の レースの 馬券を買うのだ。 

反応速度に結果が左右されないもの。 

マスター マインド 0 じっくり頭を使うやつ 
だね。リバーシでもいい。 

ショートプロなもの。伝統的な用語を使う 
なら,ピコピコゲームなもの。昔懐かしいゲー 
ムの復活の場とするのもよかろう0 

目いっぱいキッチュに,ウィンドウを52個 
開いて,神経衰弱をするとか,百枚開いて, 
百人一首するとか,ばかばかしいのもいいか 
もしれない。 

さらにその上をいって,ポコポコ開くウィ 
ンドウを探してそこをクリックするモグラた 
たきとか(失敗してほかのウィンドウを開い 
てしまったら,そいつがアクティブになって, 
肝心のモグラウィンドウが見えなくなって困 
るっていうのもいい)。 

個人的には,早撃ちゲームなんかもいいな。 
ウィンドウの中に扉がいくつかあって,どこ 
かが不意に開く。出てきたのが悪人だったら, 
マウスカーソル (もちろん照準の形だ)を動 
かして擊つ。遅いと撃たれる。このテのやつ 
が結構好きだったりするのだ。 

氺 

とりあえず,些細なものでもできたら投稿 
する。これが始まりである。 

始まりがあるからといって終;わりがあるわ 
けでもないのだが,いいものが集まったら, 
なんらかの形でディスクに収め, 「 SX エンタ 
—テイメントキット」として世に出すことに 
なろう。 

その中身は多くの SX-WINDOW ューザ 
一のハードディスクに 収められ,わずかな暇 
の相手となるだろう。 

受験生も社会人もサラリーマンもが一んば。 


120 Oh ! X 1991.2. 





















X 68000 CARD □闩 V 用カードゲーム 


スロットポー カ 


Hanyu Junya 


羽生純也 


お待たせしました。いよいよトランプゲームの真打ち,ポーカー 
の登場です。ボーナスゲームで得点倍増にチヤレンジすれば一獲 
千金も夢じやないそ。今回はひとり遊びですが,コンピュ^^! 
の対戦版もぼしいですね。誰か挑戦する人はいま、せんか7 





ひとり遊び用のポーカーです。 浅いにもかかわらず,ポーカーはカードギ 

X - BASIC からリスト1を入力してくだ ヤンブルの代表格として扱われています。 


さい。実行の際には CARD . FNC または C 
ARD 2. FNC の拡張されている必要があり 
ます。 CARD . FNC をお痔ちの方はもう 
お馴染みでしようから,ここでは1月号で 
発表された CARD 2. FNC の組み込みにつ 
いて解説しておきましよう。 

まず,1991年1月号の付録ディスクを展 
開したものを用意します。ディスク3の中 
に CARD 2 というデ'イレクトリがあります0 
コマンドシェルを立ち上げ, 

CD CARD 2 
を行ってください。 

CARDDRV TR.DAT 
でドライバを組み込みます。 

次に BASIC のあるディクトリに移動して, 

COPY B : CARD 2. FNC 
のようにして CARD 2. FNC をコピーしま 
す。あとは BASIC . CNFCCARD 2 .FNC 
を加えて, CARD 2. FNC を組み込んでく 
ださい。これで CARDDRV が使用できます。 



ポーカーとは 


さて,あまりにも有名なゲームですから 


ポーカーのルールについては特に解説する 


必要はないでしよう。 


トランプゲームのなかでは比較的歴史が 



「ポーカーという名前が初めて記録され 
たのは1829年である。ポーカーはニューオ 
リンズに発生して,スチームボートの酒場 
とともにミシシツピ河をさかのぼっていっ 
た(トランプゲーム大百科より抜粋 ) j 

ポーカーの起源としてペルシアのカード 
ゲーム 「アスナス (As Nas )」 や長い歴史 
を持つ「ブラッグ ( Brag )」 が挙げられるこ 
ともあります力す,定かではありません。アメ 
リカで発生したというのは確かなようです。 

初期のストレートポーカー,配られた5 
枚のカードで役を競うものから,手札のい 
くつかを交換(ドロー)できるドローポー 
カーが'完成されました。ふつうにポーカー 
といえばドロー ポーカーを指*します力す,さ 
らにギャンブル志向のスタッドポーカー, 
カード交換はなしで伏せられた1枚のカー 
ドに1枚ずつオープンカードを加えていく 
タイプのポーカーなども発生しています。 
あまりにも多様に変化するのでいまだに公 
式ルールを持っていません。いずれにせよ, 
「ポーカーフェイス」というように,技術よ 
りも ハッ タリがこのゲームの信条でしよう。 

ちなみに「ポーカーという名前はフラン 
スのゲームポーク ( Poque ) からくると 
も,または「イッヒポッへ (Ich Poche ) 」 

といってプレイヤーがテーブルを叩くこと 
によってパスを表すドイツのゲーム,ポッ 
ホシュピール ( Pochspiel ) に由来すると 
も考えられる j そうです。 

今回のゲームについて 

今回のプログラムはひとり遊び用ですか 
ら,もっぱら役作りを目的としたゲームに 
なります0要領はゲームセンターにあるス 



ロットポーカーと同様です。配られたカー 
ドのうち HOLD するものを指定してカー 
ドを交換し,できた役の強さで賭け金の倍 
率が変わります。 

役はふつうのポーカーハンドからワンぺ 
アを除いたものが有効で,役が成立すると 
ハイ&口一のボーナスゲームにチヤレンジ 

できます。成功すれば配当が2倍,失敗す 
れば配当はなし。持ち金が10000を超える 
とゲームクリアとなります。 

なお,一部の役の判定が通常のポーカー 
とは異なります0フラッシュとストレート 
の部分ですね。ポーカーではふつう,スト 

レートフラッシュ,フオーカード,フルハ 
ウス,フラッシュ,ストレート,スリーカ 
ード,ッー-^ア,ワンペア,ブタという順 
の役の強さになっています。これらが配牌 
時 (?) に成立する確立はそれぞれ,0.0015 
%,0.024%,0.144%,0.1956%, 0. 392 
%, 2.15%,4.75%,42.2%,50.1% とな 

っています。これでいけば,フラッシュは 
ストレートより強い役であっても不思議は 
ないのですが,配牌で大きな役が成立する 
ことを期侍してもしかたありません。その 
役を狙う気になるところ(麻雀でいえば聴 
牌時)からの成功確率ではフラッシュとス 
トレートは逆転しますから,このほうが実 
用的といえるかもしれません。 

この作品が投稿されてきたときには CA 
RD 2. FNC も CARDDRV . X もありません 
でしたが,今回試してみるとそのままでコ 
ンパイルできました。これまで発表された力 
ードゲームの多くが一部変更しないとコン 
パイルできないことを思えば,非常に素直 
にプログラムされている作品だといえます。 

ただし,コンパイルするときは適当な個 
所に適当にウェイトを入れてください(そ 
のままでも遊べますが)。 


スロット ポーカー 121 






/* 

/* THE_POKER 

/» 

int kin,kake,up,max 
int c_cnt,round 
int nx,Bi 7 ,Xty > lb, rb 

■tr pama= N 9S9vl5c" , atari= M 956vl5o4120aeae M ,wake="®56vl5 

dim 露 tr y«ku(7)=("ROYAL STRAIGHT FLUSH", 

"STRAIGHT FLUSH", 

••FOUR CARD", 

"FULL HOUSE", 

"STRAIGHT", 

"FLUSH", 

"THREE CARD.., 

"TWO PAIR") 

dim int ritau<7}={500 , 100 , 40 , 10 , 7 , 5,3 , 2} 
dim int zahyou(4)=(88, 160,232 ,304, 376) 
dim int tmp(S t l),cc(5),c(51) 
dim str m(12) 
init<> 
nv_init() 
gamen() 
jyunbi() 
while 1 
repeat 

shuffle() 
c hyouji(0) 
bet() 
game() 

roundsround+1 
until kin=0 or kin>= 10000 
over() 
endwhile 
end 


func bet() 


/« お金を賭ける 


int 

s_hyouji<1,7,8) 

if kin> = 1000 then up= 100 else up=10 
if kin<=100 then max=50 else max=kin/2 
repeat 

rasstat{x,y,lb,rb) 

if lb=-1 and rb = 0 and kake + up<=max and kin-up> =0 th 


440 kin=kin-up : m_hyouji() 

450 kake=kake+up : k_hyouji() 

460 if kake<=100 or (kin>=10OO and kake<=10OO) then w 

ait(2) 

470 } 

480 if lb=-l and rb=-l then { 

490 kin = kin + kakc : m_hyouji() 

500 kake=0:k hyouji ㈠ 

510 } 

520 until lb=0 and rb=-1 and knke>0 
530 for i=0 to 7 
540 y.hyouji(i,0) 

550 next 

560 s_hyouji(0,0,0) 

570 endfunc 
580 /t 

590 func game ( ) /* ゲームをする 

600 int i,rank 
610 c_hyouj1(1) 

620 a_hyouji(2,9 , H) 

630 rank = hantei () 

640 if rank<>8 then y_hyouji(rank,1) 

650 repeat 

660 mspos(mx,my) 

670 m93tat(x f y,lb r rb) 

680 if lb=-l then ( 

690 for is0 to 4 

700 if nx>=zahyou(i) and mx<szahyou(i)+47 then { 

710 hold ⑴ 

720 break 

730 1 

740 next 

750 a«btn(0•0•0) 

760 } 

770 until rbs-1 

780 for isO to 4 

790 if cc(i)=0 then ( 

800 c put(88>72«i,256,e) : wait(2) 

816 ) 

820 next 

830 for i=0 to 4 

840 if oc(i)=e then { 

850 t 25% t o[cjcnX.) > :oto<p« ■ 纛 } 

860 co(S)so(i) : o(i)*c(c_ont) : c<c_cnt>*cc<5> 

870 a cntso cntfl : wait(2) 

880 ) 

890 next 

900 if rank <>8 then y_hyouJi(rank.O) 

910 rfink=h«nt«i< ) 

920 if rank<>8 then { 

939 y hyouji(rank,l) 


940 

950 

960 

970 

980 

990 

1000 


kake = ritsu(rank) 拿 kake:k_nyouji () 
doublet) 


kake=0:k_hyouji() 
s_hyouji?0i0•0) 
locate 12,23:print spaces(40) 
jyunbi() 

1010 endfunc. 

1020 /* 

1030 func hold(no : int) / 

1040 if cc(no)=0 then { 
cc(no)=1 

locate 12+no»9,23 : print 
)else { 
cc(no)=0 

locate 12+no»9,23:print 


取っておくか « ベる 


1050 

1060 locate 12+no<9 ,23: print "HOLD" 

1070 
1080 
1090 

1 100 ) 

1110 endfunc 
1120 /* 

1130 func hantei ( ) / * 役の利定 

1140 int i,j 

1150 for i=0 to 4 

1160 tmp(i,0)=c(i)/13 

1170 tmp(i,1) : c(i) mod 13 

1180 if tmp(i,1)=0 then tmp(i,0)=tmp(i,0)-1:tmp(i,1)=13 

1190 next 

for i:0 to 3 
for jsi+1 to 4 

if tmp(i,1)>tmp(j,1)then ( 

tmp( 5,0) = tmp( i , 0 ) : tmp( 5 ,1)=t.mp( i •1) 
tmp(i,0)=tmp(j,0) : tmpCi»1)=tmp(j,1) 
tmp(j,0)=tmp(5,0):tmp(j,l)=tmp(5,1) 


50 
60 
70 
80 
190 
1200 
1210 
1220 
1230 
1240 
1250 
1260 
1270 
1280 
1290 
1300 


next 

next 

if mark()=1 then { 

if tmp(0 f 1) = 1 and tmp(l,1 


mp(3,1) = 12 and tmp(1,1)=13 then 


)=10 and tmp( 2,1}= 


mo 

1320 

1330 

m() 

1350 
13(10 
1370 
13H0 
1.VJ0 
1100 
1410 
1420 
1430 
1440 
1450 
1460 
1470 
1480 
1490 
1500 
1510 
1520 
1530 
1540 
1550 


return(0) 


i f strato ()=1 th<?n return { l ) 
return(5) 


It* «t.mto ( ) = 1 t hon return (*1 ) 
sw i t.oh aamo ( 0 ) 
caa«* 3 : ro. turn (2 ) 

caa« 2 : i f ( 3) = 1 then return (.'J J 

return(G) 

case 1 : switch same(2) 

case 2 : return(3) 
case 1 : return(7) 

case 0:if aame< 3)=1 then return(7) 
return(8) 

endswitch 

case 0 : switch same ⑴ 

case 3 : return(2) 
case 2 : return(6) 

case 1:if samel 3) = 1 then return(7) 
return(8) 

case 0:if same(2)=2 then return(6) 
return(8) 

endswitch 

endawitch 
1560 endfunc 
1570 /% 

1580 func mark() 

1590 int i 

for 1=0 to 3 

if tmp( 1,0) <>tmp( i-f 1,0) then return(0 ) 
next 

return(1) 

1640 endfunc 
1650 /t 

1660 func strate() 

1670 int i 

for i=0 to 3 

if abs (tmp( i , 1)-tmp( i-f 1,1)) <> 1 then return{0 ) 
next 

if aba( tmp( 0 , 1 )-tmp( 4,1))=4 then return( 1) 
return(0) 

1730 endfunc 
1740 /t 

1750 func same(at;int) 
int i•cnt=0 
for i=st+1 to 4 

if tmp(st , 1)=tmp(i,1)then cnt=cnt+1 
next 

return(cnt) 
endfunc 
/t 

func doublet) ハ 

int end_f = 0 
s_hyou ji < 0 , 0 , 0 I 
B_hyou j1(3,4,10) 
repeat 


1600 

1610 

1620 

1630 


1680 

1690 

1700 

1710 

1720 


1760 

1770 

1780 

1790 

1800 

1810 

1820 

1830 

1840 

1850 

1860 

1870 


/* マークが揃っているか « ベる 


/• ft 字が並んでいるか綱べる 


/« 同じ数字が何抆あるか«ベる 


ボ ■ 


スゲームをするか 


■ J スト1 


0 0 〇 〇 0 0 0 〇 0 〇 0 0 〇 0 〇 0 0 〇 0 〇 〇 0 〇 〇 〇 〇 〇 0 O O O OOO 0 O 0 〇 〇 〇 〇 〇 〇 ( 
12 3 4 5 6 7 890123456789012345678901234567890123 

r 1111111111222222222233333333334444 n 
c e 


122 


Oh!X 1991.2. 


► NET を間局してわかったんですけど. NET の運常讶理って大変なんですね。でも,ちら 
ほらと会 H が増えてボードにいっぱい许き込みがあると.とてもうれしくなってしまう今 
日この頃です。 小板掂敏弘 (21) 福岛県 





1880 msstat(x,y y lb,rb) 

1890 if lb=-l then end_f=l 

1900 while end_f=1 

1910 end_f=bonus() 

1920 endwhile 

1930 until rb=-l 

1910 kin=kin+kake:m_hyouji() 

1950 endfunc 

1960 /* 

1970 fiinc bonus() 


ポーナスゲ • 


1980 int cl,c2 
1990 s^hyouji(0,0,0) 

2000 locate 12,23:print spaces(40) 

2010 fill(88,2S 6,423 ,351,8) 

2020 c_put(160,256 ,c(c_cnt) J :ot.o( pa»a) : wai t ( 2 ) : c t soheck(c{ 
c_cnt)):c_cnt=c_cnt+1 

•2031) c_put(30T, 256 ,0) : oto(pnsa) : wa i t ( 2 ) 

«_hyouJi(3,11,12) 
wait(5) 
click() 

c_put(304 f 256,o(c_cnt)):oto(pasa) : wait(2):c2=check(c( 


2040 
2050 
2060 
2070 
c_cnt)) 

2080 if (lb=-l and cl<c2) or (rb=-l and cl>c2) then 
oto(atari) 

kake=kake<2:k.hjrouji() 

% hyouji(0,0,0) 

• 一 hyouji(6,5,10> 
click() 

if lb=-l then c_cnt=c_cnt+1 : return{1) 
if rb=-l then return(0) 
else { 

if cl=c2 then { 
c_cnt=c_cnt+1 
oto(wake):wait(5) 
return ⑴ 

} 


2090 

2100 

2110 

2120 

2130 

2140 

2150 

2160 

2170 

2180 

2190 

2200 

2210 

2220 

2230 

2240 


kake=0:rb=-l 
return(0) 

2250 endfunc 
2260 /t 

2270 func check(no;int) 


力 . 


/* ゲーム終了? 


2280 no=no nod 13 

2290 if no=0 then no=13 

2300 if no=l then no=14 

2310 if c_cnt=51 then c_cnt = rnd{)*52 

2320 return(no) 

2330 endfunc 
2340 /t 

2350 func over() 

2360 fill<88, 256,423 ,351,8} 

int i 
apage(0) 

if kin>= 10000 then win() 

8_hyouji(5,0,10) 
click() 

if rb=-l then ( 
els 

apage(0) : wipeU : apage(1):wipe() 
color 3 
mouae(0) 
end 


ドのチヱック 


2370 

2380 

2390 

2400 

2410 

2420 

2430 

2440 

2450 

2460 

2470 

2480 

2490 

2500 

2510 

2520 

2530 

2540 

2550 


kin= 100 :m_hyouji() 
round=0 

s_hyouji(0,0,0) 
for i=0 to 4 

locate 23,18+i:print spaces(IB) 
next 

wipe() : apage(1) 

2560 endfunc 
2570 ft 

2580 func win() /* W ち 

2590 fill(152,23 2,359,383,4) 

symbol ( 166,244 ,CONGRATULATION : ,1 
print" ラウン ド 数" 


2600 

2610 

2620 

2630 

2640 


print usin ぐ "#..; round 
print ••最終 MW 餌 " 
print using"9<#####";kin 


locate 23,18 
locate 38,19 
locate 23,21 
locate 34,22 
2650 endfunc 
2660 

2670 func cl ick( ) / •ボタンを If す 

2680 repent : msstat(x,y,lb,rh) : untii Lbfrb< >0 

2690 endfunc 
2700 /♦ 

27 10 rune c..hyouj i ( ptn ; int) /* カードの衣示 

2720 int i 

for i=0 to 4 

if ptn=0 then ( 

c_put(8H+i»72,256,0) 

} else { 

c_put(88+i* 72,256 ,c(i)) 


r15,0) 


2730 

2740 

2750 

2760 

2770 

2780 

2790 

2800 


oto(pasa) : wait(2) 
next 
2810 endfunc 
2820 /t 

2830 func y_hyouji(no;int,ptn;int) 


/* S の表示 


2840 if ptn then color 15 

2850 locate 28 t nof1 

2860 print using " t &. 5¢¢*#¢¢ 

u(no),ritsu(no ) »kake 

2870 color 7 

2880 endfunc 

2890 /♦ 

2900 func s_hyou j i(ml ;int,m2;int,m3; int) / * 説明の表示 
2910 locate 15,26:print ro(ml) 

2920 locate 15,27 : print m(m2) 

2930 locate 15,28:print m(m3) 

2940 endfunc 
2950 ハ 

2960 func m_hyouji ( ) /* 持ち金の表示 

2970 locate 19,9: print using " 

2980 endfunc 


2990 
3000 
3010 
3020 
3030 
3040 
3050 
3060 
3070 
3080 
3090 
3100 
3110 
3120 
3130 
3140 
3150 
3160 
3170 
31H0 
3190 
3200 
:<210 
32iJ0 
3230 
32-10 
3250 
3260 
3270 
3280 
3290 
3300 
3310 
3320 
3330 
3340 
3350 
3360 
3370 
3380 
3390 
3400 
3410 
3420 
3430 
3440 
3450 
3460 
3470 
3480 
3490 
3500 
3510 
3520 
3530 
3540 
3550 
3560 
3570 
3580 
3590 
3600 
3610 
3620 


/< 

func k_hyouji ( ) /* IS け金の表示 

]ocate 56,10:print using ;kake 

endfunc 
/* 

func jyunbi () ハ次の準谁 

int i 
c_cnt=5 
for i=0 to 5 

tmp(i,0)=0 : tmp{i,])=0 
cc(i)=0 
next 

for i=l) to 7 
y_hyouji (i,0) 
next 
endfunc 
/* 

func oto(pt.n ; str) /« 効 ili H 

»n_i n i t ( ) : m_1.rk (1,ptn ) : m_p] ay () 
end func 


func wa i t (w; i n t) /t ウエ 

int i 

for i =0 to w< 10(): next 
endfunc 

/* 

func init() 

screen 1,1,1,1 
console ,,0 
apage(1) : vpage(3) 
msarea(88, 256,423, 351) 
mouse(4) : mouse(1) 
m_assign(1,1):m_alloc(1, 
color 7 

rnndomize (val(midS(timeS,4 t 2)-frightS(time$ t 2))) 
endfunc 

ft 

func nv_init() / t 変数の初期詨定 

for i=0 to 51 
c(i)=i+l 
next 

round=0 : kin=100 : kake=0 : up= 10 : max=50 
0 ) = f, " 

1)=”賭け金を決めて下さい,” 

2> = " カードを選んで下さい •" 

3) = M D O U B L E UP" 

4) =" に执敝しますか?" 

5い••もう一度、执睢しますか?” 

6 >=” 賭け金は倍になりました,” 

左ボタン • 賭け金を增やす” 

決定" 

HOLD 、 CANSEL” 

YES 右ボタン . N O" 

BIG.. 

SMALL" 


/* 初期設定 


, 100 ) 


="右ボタン 
=" 左ボタン 
10 >=••左ボタン 
1U =" 左ボタン 
12 )="右ボタン 
endfunc 
/» 

func shuffle ( ) /拿シャッフル 

int i , a , b,k 
for i=0 to 99 

a=rnd() #52 :b=rnd() *52 
k=c(a) : c(a)=c(b):c(b)=k 
next 
endfunc 


3630 /t 

3640 func gamen() /t B 面描面 

3650 fill(0,0,511,511,3) 

3660 fill(0, 192,51 1,511,8) 

3670 fill(112,408,399,471,0) 

3680 box( 114,412,397 ,467,15) 

3690 box(219,8,507,151,15) 

3700 box(219,151, 507,183 ,15) 

3710 box(5,8,214,112,15> 

3720 box(5, 120,214 ,183,15) 

3730 symbol <23 ,26, ’.THE" ,2,1 , 2,0 , 0) 

3740 symbol<21,24,"THE", 2, 1,2, 13,0) 

3750 symbol(23,50,"POKER” , 3 , 2,2•0 , 0 > 

3760 symbol(21•48 , "POKER" , 3 , 2 , 2 , 13 , 0> 

3770 locate 2,9:print "あなたの持ち金 $•* 

3780 m hyouji() 

3790 locate 29 , 10 :print け金 , , + spacet < 20 >+ " J 0 

3800 endfunc 


►授業で使うパソコンはすべて PC -9801 なので,友人はほばすベて PC -9801 を H っている。 

意志を貰いて X 68000 を買ったのは f 突ひとりである。後悔はしていないがプログラムなどの スロットポーカー 

授業では課越のやり商しが許されない(家でやれない)のでつらいです。 

良崎洋 (22) 神奈川県 


;yak 


123 







八クレポートとファイル関数 

亀田雅彦 Kameda Masahiko 


INTEGRAL XI の解説も今回でひとまずおしまい。ご迷惑をかけてきたバグを今 
回で一気に追放しましよう。また, INTEGRAL 用の外部コマンドを作成したとい 
う方はぜひ投稿お願いします。 


読者の皆さん,約半年間のご愛読誠にあ 
りがとうございました。なんと!ネタ不 
足のため,今月をもちましてこの連載は終 
了させていただくことになりました。今後 
も単発の形式で, KAME - DOS のサボー 
卜をしていくつもりです。お楽しみにね(ひ 
そかにバージョンアップしてたりして)。 

* 

さて,それでは今月のお題目。 

1) 現在までに発見されているバグ特集。 

2) DOS らし〈入出力関数群。 

という2つです。まずは 1) から。 

八クだよ〜ん 

どうも,おさわがせしてすみません。0 
h ! X 1990 年12月号の「ごめんなさいのコー 
ナ ー j に掲載されたものを含めて,4力所 
ほどバグがありました。以下に,それぞれ 
の症状と修正方法を示します。 

•その1 

12月号のバグです。 

ホ症状 

COPY コマンドでバイナリファイル (B 
in ファイル)を上書きした場合,旧フアイ 
ルのロードアドレス,実行アドレスが新フ 
アイルのものに更新されずに残ってしまい 
ます。 

* 対策 

お手持ちの 「 FDC . OBJ 」 を,12月号の 
アセンブル リストの マシン語 データ部分の 
ように書き換えてください。または今月の 
変更用リスト3のように書き換えてくださ 
い。そして, 

SAVE “ FDC . OBJ ,,,& HD 000, 
&HECFF 

としていままでと同じようにセーブします。 
マシン 語データを入力する際には,アドレ 
スに注意してください。 

籲その2 

* 症状 

ASCII セーブされたプログラムフアイ 


ルを COPY して,その COPY したファイ 
ルを今度は BASIC で LOAD しようとする 
と,うまくいかないことがあります。 

* 対策 

アセンブル リストはリスト 1。 リスト 3 
の変更でもかまいません。方法は「その1」 
をご覧ください。 

春その3 

* 症状 

XI フオー マツ トのサブデイ レクト リに 
おいて,ファイルが8個までしか表示され 
ませんでした。ただしそれは turboBASI 
C で作られたファイルの場合です 。 KAM 
E - DOS でサブデイ レクト リ下に コ ピーし 
た場合は,8個以上あっても表示します。 
また MS — DOS フォー マツ トの場合はまっ 
たく正常に動作します。 

* 対策 

アセンブルリストはリスト2。リスト3 
の変更でもかまいません。方法は「その1」 
をご覧ください。 

•その4 

* 症状 

「その3」に関連して, Oh ! X 8 月号に掲 
載された 「 MD . X 1」 にも不備な点があり 
ました。これで作ったサブデイレクトリに 
turboBASIC でファイルを書き込むと, 
正常に動作しないことがあります。 

* 対策 

「 MD . X 1」 の1380行を以下のように修 
正します。 

1380 k = l : i 0=256 : il =& HC 0 : d 
= &HFF : RETURN 
i 

1380 k =16: 10=4096 : il =& HC 0 : d 
= &HFF : RETURN 
「 MD.Xlj は Oh ! X 1990 年 8 月号95, 96 
ページに 掲載されています。 

本** 

こんなにバグばっかりで,本当になんと 
お詫びしてよいやら。さすがにもう出尽く 
したとは思うんですが……。 


入出力関数 

「 FDC . OBJ 」 内には,意外と有用なサブ 
ルーチンも含まれているのですが,使い勝 
手がよくありません。そこで, BASIC 力 1 
らでも簡単に呼び出せるように,いくつか 
の USR 関数を作ってみました。種類は8個。 
FOPEN : & HC 000 

FEOF : & HC 003 

FGETC : & HC 006 

FPUTC : & HC 009 

FCLOSE : & HC 00 C 

FREADS : & HC 00 F 

FWRITS : & HC 012 

FREAD : & HC 015 

それぞれ,ファイルをシーケンシャルに 
読み出すための関数です。(名前の由来は 
X 68000 の X - BASIC ) 

ただしこのプログラムは,いわば DOS 
コールの 拡張ですので, この 関数を使った 
プログラムが DOS の外部コマンドである 
必要はありません。つまり 「 FDC . OBJ 」 

とこの関数ルーチンさえメモリ上にあれば, 
普通の BASIC プログラムからでも DOS 機 
能が使えるのです。 

だいたいのコンセプトはわかりましたね。 
それでは実際の使い方です。 

使い方 

「CLEAR & HCC 00」 を実行後,リス 
卜4をマシン語入 カツールで 入力してくだ 
さい。そして, 

SAVEM “ FUNC . OBJ ,,,& HCCOO , 
&HCFFF 

としてセーブします。この関数を使うため 
には 「 FDC . OBJ 」 をロードして,初期化 
しておく必要があります。 「 INTEGRAL . 
X 」を LOAD , RUN してくた^さい。そし 
て先ほどの 「 FUNC . OBJ 」 を LOAD しま 
す。これで準備完了です。このあとで , 「CO 


124 Oh!X 1991.2. 






1 

• 

DE86 




30 


2 

JKAME-DOS BUG-FIX3 *90/11/20 

DE86 




31 

; 

3 


DE86 




32 

BEGIN2 

4 

;S-OS REOA 

0E86 

F5 



33 

PUSH AF 

5 


DE87 

3A 

70 

DE 

34 

LD A,(WORKS) 

6 

#CRSRW EQU $E009 

DG8A 

B7 



35 

OR A 

7 

#FRWF EQU SE0A1 

0E8B 

28 

0B 


36 

JR Z,SBG3 

8 

#EDD EQU $EB8F 

0E8D 

FI 



37 

POP AF 

9 


0E8E 

AF 



38 

XOR A 

10 

ORG $D7E5 

DE8F 

32 

70 

DE 

39 

LD (WORKS),A 

11 

; 

DE92 

3B 

10 


40 

LD A,$L0 

12 

JP NZ.BEGINl 

0E94 

32 

8F 

EB 

41 

LD (#EDD),A 

13 


DE97 

C9 



42 

RET 

14 


DE98 




43 


15 

ORG $DE70 

0E98 




44 

SBG3 

16 

; 

DE98 

FI 



45 

POP AF 

17 

WORKS 

0E99 

32 

8F 

EB 

46 

LD (*EDD),A 

18 

DB 1 

DE9C 

C9 



47 

RET 

19 


DE9D 




48 


20 

BEGIN1 

DE9D 




49 

j 

21 

LD A,(#FRWF) 

E3EA 




50 

ORG $E3EA 

22 

OR A 

E3EA 




51 

; 

23 

JP NZ,#CRSRW 

B3EA 

CD 

86 

DE 

52 

CALL BEGIN2 

24 

LD A,1 

B3ED 




53 


25 

LD (WORKS),A 

2466 




54 

ORG $E466 

26 

CALL #CRSRW 

E466 




55 

; 

27 

LD A,0 

2466 

CD 

86 

DE 

56 

CALL BEGIN2 

28 

LD (WORKS),A 

B469 




57 


29 

RET 








MMAND . Xlj その他,外部コマンドを 
起動すると 「 FUNC . OBJ 」 は破壊されま 
す。そのときは, 

CLEAR &HCCOO 
LOADM ” FUNC . OBJ ” 

を実行して〈ださい。 

マシン語の準備が完了したら,呼び出す 
ための BASIC プログラムを作ります 。 DE 
FUSRO - 7に上記のァドレスを定義して 
使うのが簡単でしよう。具体的にサンプル 
プログラムを見てみます。なお今月のプロ 
グラムはすべて,ノーマル X 1( CZ -8 FB 01) 
でも動作します。 

氺 

サンプルプログラム。以下のプログラム 

は, 「 FUNC . OBJ 」「 FDC.OBJj が準備 
されている状況で, ASCII ファイルを対 
象に実行してください。 BASIC からダイ 
レクトに RUN できます0対象ファイルに 
正規の EOF がないと,うまく動作しない 
ことがあります。 

• リスト 5 (TYPE.BAS) 

「 FREADS 」 のサンプル。ファイルの 
中身を表示します。コマンドラインから T 
YPE するのとほぼ同じです。ファイル名 
は,プログラム中の1170行の ” Y : COPY . 
■ UXM 亍 n ツヴその飞 


DOC ” で指定します。 

プログラムは,ファイル OPEN に始ま 
り, EOF かエラー (PEEK ( v _ stop ) く > 0 
でエラー有)になるまで,改行コードごと 
に表示し続けます。読み込みの場合は CL 
OSE はいりません。 

• リスト 6 (COPY.BAS) 

「 FGETC 」「 FPUTC 」 のサンプル。フ 
ァイルのコピーをします。1170行,1180行 
に,それぞれ読み込み/書き込みファイル 
名を入れて実行してください。1文字ずつ 
読み込み,改行以外のコントロールコード 
を抜かして書き込みます(表示もする)。 


リスト3デバッグ部ダンプリスト 


リスト3の使い方 

まず 「 FDC . OBJ 」 を LOAD します。 

CLEAR & HD 000 
LOADM “ FDC . OBJ " 

次にマシン語入カ ツールな どを使ってリ 
スト3を入力します(もちろん 「 FDC.OBJj 
をメモリ上においたまま)。そして,いま 
までの 「 FDC .0 BJ 」 の代わりに,変更済み 
の 「 FDC .0 BJ 」 をセーブします。 

SAVEM TDC . OBJ ", & HD 000, 

&HECFF 

これで,12月号と今月号の分のすべての 
バグを直したことになります。 


D565 

C3 

30 

DE 






: D1 

SUM : 

C3 

30 

DE 

00 

00 

00 

00 

00 

D9F1 

DB15 

CD 

50 

DE 






: FB 

SUM : 

CD 

50 

DE 

00 

00 

00 

00 

00 

583F 

D7E5 

C2 

71 

DE 






: 11 

SUM : 

C2 

71 

DE 

00 

00 

00 

00 

00 ! 

B8D0 

E3EA 

CD 

86 

DE 






i 31 

SUM : 

CD 

86 

DE 

00 

00 

00 

00 

00 ! 

BE3F 

E466 

CD 

86 

DE 






: 31 

SUM : 

CD 

86 

DE 

00 

00 

00 

00 

00 8E3F 

DE30 

C2 

42 

E0 

21 

C8 

DO 

11 

7E 

2C 

DE38 

E0 

01 

0D 

00 

ED 

BO 

C3 

68 

B6 

DE40 

D5 

00 

00 

00 

00 

00 

00 

00 

D5 

DE48 

00 

00 

00 

00 

00 

00 

00 

00 

00 

DE50 

D9 

C5 

D5 

79 

B7 

28 

08 

AF 

82 

DE58 

CD 

18 

E0 

13 

0D 

18 

F4 

D1 

C2 

DE60 

Cl 

D9 

C3 

22 

DB 

00 

00 

00 

5A 

DE68 

00 

00 

00 

00 

00 

0 0 

00 

00 

00 

DE70 

01 

3A 

A1 

E0 

B7 

C2 

09 

E0 

IE 

DE78 

3E 

01 

32 

70 

DE 

CD 

09 

E0 

75 

DE80 

3E 

00 

32 

70 

DE 

C9 

F5 

3A 

B6 

DE88 

70 

DE 

B7 

28 

0B 

FI 

AF 

32 

0A 

DE90 

70 

DE 

3E 

10 

32 

8F 

EB 

C9 

11 

DE98 

FI 

32 

8F 

EB 

C9 




66 

SUM : 

2C 

22 

EE 

B2 

CD 

98 

71 

5B 0FFD 


0000 

0000 


l 2 

; KAME-DOS BUG-F1X2 

0000 


3 


0000 


4 

; S-OS REDA 

0000 


5 


E018 

P 

6 

*LDDEA EQU $E018 

DB22 

0000 

P 

7 

8 

#LDMSBT EQU $DB22 

DB15 


9 

ORG $DB15 

DB15 


10 

; 

DB15 

CD 50 DE 

11 

CALL BEGIN 

DB18 


12 


DB18 


13 


DE50 


14 

ORG $DE50 

DE50 


15 

; 

DE50 


16 

BEGIN 

DE50 

D9 

17 

BXX 


DE51 C5 
DE52 D5 
DE53 
DE53 79 
DE54 B7 
DE55 28 08 
DE57 AF 
DE58 CD 18 E0 
DE5B 13 
DE5C 0D 
DE5D 18 F4 
DE5F 
DE5F D1 
DE60 Cl 
DE61 D9 
DB62 C3 22 DB 
DE65 


18 

19 

20 
21 
22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 


PUSH BC 
PUSH DB 
BGLOOP 
LD A,C 
OR A 

JR Z.BGSKIP 
XOR A 

CALL #LDDEA 
INC DE 
DEC C 
JR BGLOOP 
BGSKIP 
POP DE 
POP BC 
EXX 

JP ILDMSBT 


リスト 2 デバッグその 2 


E O 0 E 0 E 
D E E D E D 

1 1 9 10 9 0 0 
7 A 0 0 7 0 0 7 

2 1 A72B2DE29 
ppp c 0 3BC33C33C 

000009 IF 0555880000111458 AD025 
000000 A80EEEEE 7777777777 :7:7£8:8!8 
0000000 B 077777 eeeeeeeeee)e )e)e)e)e 
00000 EEE0DDDDDDDDDDDDDDDDDDDD 


INTEGRAL.XI 125 














そのため,かなり遅いので注意しましよう。 
• リスト 7 (CON.BAS) 

「 WRITSj のサンプル。キーボートか 
ら1文字ずつ入力して,ファイルに書き出 
します0コントロールコードもそのまま書 
き込みます。 CTRL + Z を入力した時点で, 
ファイルの CLOSE をして終了です0 CLO 
SE しなければファイルは作成されません。 
• リスト 8 (FDUMP.BAS) 

「 FREAD 」 のサンプル0指定ファイル 
を16進ダンプリスト形式で表示します。プ 
ログラムは,ファイルを16バイトごとに読 
み込んで表示するだけの簡単なものです。 

氺ホ氺 

いずれのサンプルでも,指定ファイルが 
ない,ディスクがささってないなどのエラ 
一は Fl $, F 2$ でチェックします。 

関数リスト 

各々の関数の引数,戻り値をリストァッ 
プします。なぉ,引数とは 「 USR ( )」 

の括弧内の値であり,戻り値は 「 A $ = US 
R < )」というときに A $ に入る値です。 
引数,戻り値ともにすべて文字変数に統一 
されています 0 マシン 語から コールす る場 
合は, DE と B レジスタだけ USR 関数形式 
にしてぉいてください。 

•FOPEN 

引数: CHR $(1)+ “ファイル名” 

CHR $ (2)+ “ファイル名’’ 

戻り値:ファイル番号 

引数の CHR $() の中の数字は,1が 
READ OPEN , 2が ' WRITE OPEN のす旨 
定です。ファイル名はフルパスで指定して 
ください。 

戻り値は「1か2か255」しかありませ 
ん。実は KAME - DOS では,同時に開け 

| リスト4 FUNC.OBJ 


CCO0 

C3 

1C 

CC 

C3 

P7 

CC 

C3 

2B 

IF 

CC08 

CD 

C3 

B1 

CD 

C3 

32 

CB 

C3 

94 

CC10 

99 

CB 

C3 

FB 

CB 

C3 

IB 

CP 

A3 

CC18 

ae 

ee 

ee 

00 

BD 

S3 

62 

CF 

71 

CC20 

3B 

10 

32 

B5 

BC 

1A 

13 

05 

83 

CC28 

FB 

01 

28 

0C 

FE 

02 

28 

5B 

B6 

CC30 

3E 

FP 

ED 

SB 

62 

CF 

12 

C9 

91 

CC38 

3B 

07 

32 

8B 

D1 

CD 

E6 

CC 

52 

CC40 

AF 

32 

81 

D1 

3B 

01 

32 

80 

24 

CC48 

D1 

32 

65 

E0 

C5 

D5 

CD 

21 

DO 

CC50 

D0 

D1 

Cl 

3A 

8C 

E0 

B7 

29 

DF 

CC58 

0F 

68 

3A 

84 

D1 

47 

7D 

90 

5A 

CC60 

6F 

26 

ee 

19 

EB 

CD 

24 

DO 

5A 

CC68 

3A 

8C 

Ee 

B7 

3E 

FF 

20 

15 

CF 

CC70 

AP 

32 

61 

CF 

32 

65 

CF 

32 

A9 

CC78 

66 

CF 

21 

00 

00 

22 

18 

CC 

5C 

SUM: 

FE 

14 

FC 

73 

4D 

1C 

9F 

B5 3P0A 

CC80 

22 

5D 

CF 

3E 

01 

ED 

5B 

62 

37 

CC88 

CF 

12 

C9 

3E 

07 

32 

8C 

D1 

7E 

CC90 

CD 

E6 

CC 

3E 

01 

32 

65 

E0 

35 

CC98 

3E 

02 

32 

80 

D1 

3E 

03 

32 

36 

CCA0 

81 

D1 

C5 

D5 

CD 

21 

D0 

D1 

7B 

CCA8 

Cl 

3A 

8C 

E0 

B7 

20 

IE 

68 

C4 

CCB0 

3A 

84 

D1 

47 

7D 

90 

6F 

26 

78 

CCB8 

00 

19 

EB 

3E 

01 

32 

65 

E0 

BA 

ccce 

3E 

02 

32 

80 

D1 

3E 

03 

32 

36 

CCC8 

81 

D1 

CD 

24 

DO 

3A 

8C 

E0 

B9 


るファイル数は READ ひとつと WRITE 
ひと〇の計2つだけなのです。したがって, 
READ ファイルのファイル番号は1 , W 
RITE ファイルは2と決まっています。戻 
り値が255の場合はエラーです。 

• FEOF 

引数:ファイル番号 
戻り値: 2 5 5か0 

ファイル番号はわかりきっていますが, 
必ず指定してください。以下の関数も同様 
です。戻り値が255のときは EOF (エンド 
オブファイル)です0 0のときは,まだフ 
ァイルに続きがあります0 
•FGETC 

引数:ファイル番号 
戻り値: データ 

データというのは「ファイルのデータ1 
バイト」ということです。今回の関数群は, 
内部に共通のファイルポインタを持ってい 
て,それに従ってデータを読み出してきま 
す。 FGETC の実行後は自動的にポインタ 
が+1されます。ポインタを任意で動かす 
FSEEK のような関数はありません。 

エラーの場合は V_STOP (& HE 08 C ) が 
0以外の数字になります。 

•FPUTC 
引数: データ 
戻り値:不定 

引数の1バイトデータをファイルに書き 
出します。実行後,自動的にポインタは一 
1されます。ほかは FGETC と同様です。 
♦FC し OSE 
引数:ファイル番号 
戻り値:不定 

WRITE ファイルを SAVE します0書き 
込み時は必ず最後に CLOSE してください。 
逆に READ のときは必要ありません。 

•FREADS 


CCD0 B7 3E FF 20 0B 21 00 00 : 40 
CCD8 22 1A CC 22 5F CF 3E 02 : 98 
CCE0 ED 5B 62 CF 12 C9 C5 3A : 53 
CCE8 8B E0 4F 06 00 21 C0 EC : 8D 
CCF0 09 7E 32 97 E0 Cl C9 F5 : AF 
CCF8 C5 D5 E5 D5 1164 CF CD : 65 


SUM: 56 B8 35 9B EA 09 FB 80 5D2B 

CD00 06 CC 2A 18 CC 2B 2218 : 45 

CD08 CC 2A 5D CF 23 22 5D CF : 93 

CD10 D1 AF 12 32 65 CF 3A 64 : 96 

CD18 CF 47 3A E7 EC B8 20 06 : 01 

CD20 3E FF 12 32 65 CF El D1 : 67 
CD28 Cl FI C9 F5 C5 D5 E5 DD : CC 

CD30 E5 3A 65 CF B7 20 3E ED : 55 

CD38 53 62 CF 2A 5D CF 7C B5 : 0B 

CD40 CC 7C CD 3A 8C E0 B7 20 : 92 

CD48 25 2A 18 CC ED 5B E3 EC : 4A 

CD50 CD 2A E0 ED 5B DF EC 19 : 03 

CD58 CD 12 E0 ED SB 62 CF 12 : 4A 

CD60 2A 18 CC 23 2218 CC 2A : 61 

CD68 5D CF 2B 22 5D CF DD El : 63 

CD70 El D1 Cl FI C9 3E 09 32 : A6 

CD78 8C E0 18 F2 3A 66 CF B7 : 9C 

SUM: 28 F2 57 28 2F 6E 2F CC 3E13 

CD80 28 06 3E 09 32 8C E0 C9 : DC 


引数:ファイル番号 
戻り値:読み込んだデータ数 
データ (& HEE 00 〜) 

ファイルポインタから,次の改行まで読 
み込みます。戻り値はデータ数で,実際の 
データは & HEE 00 〜に格納されています。 
改行がみつからずに , 「EOF •エラー • 255 
バイトを超えた」場合はそこまでのデータ 
が格納されています。データに改行コード 
は含まれません。 

• FWRITS 
引数: データ 
戻り値:不定 

FPUTC を複数バイト対応にしたもので 
す。255バイト以下のデータを文字変数に 
入れて,引数としてください。コントロー 
ルコードも含めて,変数の長さ分だけは必 
ず書き込みます。 

•FREAD 

引数:読み込む データ 数 
戻り値:読み込んだ データ 数 
データ (& HEE 00 〜) 

ファイルポインタから,指定された数だ 
けデータを読み込みます。実際のデータは 
& HEE 00 〜です。データ中のコントロー 
ルコードもまとめて読み出します0指定数 
に達しないうちに 「EOF •エラー」 になった 
場合は,そこまでのデータが入っています。 
* 

今月のプログラムは,読者の皆さんが自 
分でプログラミングするときの役に立つよ 
うに作りました。ファイル操作などで , M 
S - D 0 S フオー マツ トを扱いたいときなど, 
今月の関数を使ってみてください 。 BASIC 
に限らず, マシン 語からでもコールできます0 
それでは,この DOS がより広く使われる 
ことを願ってこの連載を終わることとしま 
しよう。 


CD88 

3E 

07 

32 

8B 

D1 

3E 

01 

32 

44 

CD90 

8C 

D1 

3A 

61 

CF 

32 

9C 

E0 

75 

CD98 

CD 

0C 

D0 

3A 

9C 

E0 

B7 

2C 

36 

CDA0 

06 

3E 

FF 

32 

66 

CF 

AF 

32 

8B 

CDA8 

61 

CF 

2A 

9D 

He 

22 

5D 

CF 

25 

CDB0 

C9 

F5 

C5 

D5 E5 

DD 

E5 

78 

77 

CDB8 

B7 

28 

2E 

2A 

DF 

EC 

ED 

4B 

3A 

CDC0 

E3 

EC 

09 

ED 

4B 

5F 

CF 

09 

47 

CDC8 

1A 

EB 

CD 

18 

Ee 

2A 

1A 

CC 

DA 

CD00 

23 

22 

1A 

CC 

2A 

5F 

CF 

23 

A6 

CDD8 

22 

5F 

CF 

AF 

32 

9B 

E0 

ED 

99 

CDE0 

5B 

E3 

EC 

B7 

HD 

52 

CC 

F0 

DC 

CDE8 

CD 

DD 

El 

El 

D1 

Cl 

FI 

C9 

B8 

CDF0 

2A 

5F 

CF 

22 

9D 

E0 

3E 

01 

36 

CDF8 

32 

8B 

D1 

3K 

07 

32 

8C 

D1 

62 

SUM: 

6C 

16 

C2 

75 

61 

3E 

31 

2F B162 

CEO0 

3E 

02 

32 

9C 

E0 

CD 

0F 

CE 

98 

CE08 

21 

00 

ee 

22 

5F 

CF 

C9 

3E 

78 

CE10 

CD 

21 

29 

CE 

32 

7A 

DB 

22 

8E 

CE18 

7B 

DD 

CD 

0C 

D0 

3E 

2A 

21 

88 

CE20 

A4 

E0 

32 

7A 

DB 

22 

7B 

DB 

83 

CE28 

C9 

2A 

DF 

EC 

ED 

5B 

E3 

EC 

D5 

CH30 

19 

C9 

F5 

C5 

D5 

E5 

DD 

E5 

18 

CE38 

1A 

FE 

02 

20 

39 

11 

64 

CF 

B7 

CE40 

3A 

E8 

KC 

12 

06 

01 

CD 

09 

FD 

CE48 

CC 

CD 

7D 

CE 

3E 

01 

32 

9R 

F0 

CE50 

E0 

CD 

F0 

CD 

2A 

1A 

CC 

22 

9C 


126 Oh! X 1991.2. 












CE58 86 D12100 い 0 22 88 D1:F3 
CE60 3A 08 D1 E6 0J 3E 04 20 : 5C 
CE68 02 3H 2C 32 82 DO 3E 02 : 24 
CE70 32 80 D1 CD 15 D0 DD El : F3 
CE78 El D1 Cl FI C9 2A DF EC : 22 


SUM : 02 B9 2D 66 E6 0D CD 50 FD90 

CE80 ED 5B E3 EC J9 ED 5B 5F : D7 
CE88 CF 19 EB AF CD 18 E0 13 : 5A 
CE90 2A E3 EC B7 ED 52 20 F3 : 02 
CE98 C9 F5 C5 D 5 E5 DD E5 DS : D4 
CEAO 06 FF 21 00 EE 1164 CP : 58 
CEA8 3E 0112 CD 06 CC 1A 4F : 59 


CEB0 3A E7 EC B9 2610 2A 18 : 38 
CEB8 CC 2B 2218 CC 2A 5D CF : 53 
CEC0 23 22 5D CF 18 2D 79 FE : 2D 
CEC8 0D 20 IE 1164 CF 3B 01 : CE 
CED0 12 CD 06 CC 1A FE 0A 28 : FB 
CED81A 2A 18 CC 2B 2218 CC : 59 
CEEC 2A 5D CF 23 22 5D CF 18 : DF 
CEE8 OA 3A 8C E0 B7 20 04 71 : FC 
CEF0 2310 B2 78 2F D112 DD : 4C 
CEF8 El El D1 Cl FI C9 F5 C5 : C8 


SUM : 8D IF 37 79 52 7E F8 5D 2ED7 
CF0O DS E5 DD E5 78 B7 28 0C : DF 


CF08 CD 09 CC 3A 8C E0 B7 20 : IF 
CF10 031310 F4 DD El El D1 : 8A 
CF18 Cl FI C9 F5 C5 D5 ES DD : CC 
CF2C E5 D51A 47 21 00 EE 11 : 3B 
CF28 64 CF 3E 0112 CD 06 CC : 23 
CF3C 1A 4F 3A E7 EC B9 20 10 : 5F 
CF38 2A 18 CC 2B 2218 CC 2A : 69 
CF40 5D CF 23 22 5D CF 18 0A : BF 
CF48 3A 8C E0 B7 20 04 7123 : 15 
CF5C 10 D5 D11A 90 12 DD El : 30 
CF58 El D1 Cl FI C9 00 00 00 : 2D 

cF 6 e ee ee ee 00 00 ee ee : ee 


SUM : 7B FE 75 46 BD D9 EB FF 510B 


リスト 5 TYPE • 巳 AS 


_ : 了 


FOR INTEGRAL X (WITH FDC.OBJ) 
By M.Kaffleda 


*TYPE.BAS 
1020 1 

1030 CLEAR 4HCC00 
1040 'LOADM "l:FUNC,OBJ ., 

1050 DEFINT A-Z:v stop=&HE08C : p256=&HEE00 


*NAME 

* FOPBN USR(R(1)/W(2) 

,FEOP USR(FILE NO.) 

* FGETC USR(FILE NO.) 

* FPUTC USR(DATA) 

*FCLOSE USR(FILE NO.) 

1 FREADS USR(FILB NO.) 

*FWRITS USR(DATA) 

1 FHEAD USR(LENGTH) 

FILE NO.=l(READ)/2(WRITE) 


1060 

1070 DEFUSR0=8tHCC00 
1080 DEFUSRlslcHCC03 
1090 DEFUSR2=fcHCC06 
1100 DEFUSR3 : &HCC09 
1110 DEFUSR4=4HCC0C 
1120 DEFUSR5=4HCC0F 
1130 DEFUSR6=&HCC12 
1140 DEFUSR7=4HCC15 
1150 * 

1160 » 

1170 D1$=USR0(CHR $ ⑴ + ”Y:COPY.DOC"> 

1180 1 

1190 F1$=LEFT$(D1$,1) : IF ASC(F1$)<>1 THEN 1290 
1200 * 

1210 E$=USR1(F1$+" H ) 

1220 WHILE ASC(E$)=0 AND PEEK(v atop)=0 
1230 W$sUSR5(Fl$+ ,M, ) : L=A3C(W$) 

1240 IF PEEK{v atop)=0 THEN PRINT MEM$(p256,L) 
1250 E$=USR1 (fT*+""> 

1260 WEND 
1270 END 
1280 * 

1290 PRINT "ERROR!STOP 


*RETURN 

FILE NAME) FILE NO. 

EOF(-l)NOT(0) 
DATA 
? 

? 

LENGTH , p256- 
? 

LENGTH , p256- 


自分のファイル名にする 


*EOF? 

•FREADS 


U スト B COPY. 巳 AS 


1000 

1010 

1020 

1030 

1040 

1050 

1060 

1070 

1080 

1090 

1100 

1110 

1120 

1130 

1140 

1150 

1160 

1170 

1180 

1190 

1200 

1210 

1220 

1230 

1240 

1250 

1260 

1270 

1280 

1290 

1300 

1310 

1320 

1330 


• COPY.BAS 


DEFUSR0=&HCC00 

DEFUSR1=&HCC03 

DEFUSR2=&HCC06 

DEFUSR3=&HCC09 

DEFUSR4=&HCC0C 

DEFUSH5=&HCC0F 

DEFUSR6=&HCC12 

DEFUSR7=&HCC15 


FILE NAME) 


FOR INTEGRAL X (WITH FDC.OBJ) 

’ By M.Kameda 

CLEAR &HCC00 

* LOADM "1 : FUNC.OBJ M 

DEFINT A-Z : v_stop=&HE08C : p256=&HEE00 
1 *NAME 

FOPEN USR{R(1)/W(2) 

FEOF USR(FILE NO.) 

FGETC USR(FILE NO.) 

FPUTC USR(DATA) 

FCLOSE USR(FILE NO.) 

FREADS USR(FILE NO.) 

FWRITS USR(DATA) 

FREAD USR(LENGTH) 

* FILE NO.=1(READ)/2(WRITE) 

D1$ = USR0(CHR$< 1> + "W:D0S3.RED” > ,自分のファイル名にする 
D2$ = USR0 (CHR$ ( 2 ) + "Y : COPY . DOC") ,自分のファイル名にする 

F1$=LEFT$(D1$,1):IF ASC(F1$)<>1 THEN 1330 
F2$=LEFT$(D2$,1) : IF ASC(F2$)<>2 THEN 1330 

E$=USR1 (Fl$ + ,t **) 

WHILE ASC(E$)=0 AND PEEK(v_stop)=0 , EOF? 

D$=USR2(F1$ + "") » FGETC 

IF ASC(D$)<32 AND ASC(D$) 013 THEN 1290 ,改行以外の CTRL-CODE 
IF PEEK(v_8top)=0 THEN PRINT D$ ; : W$ = USR3(D$ +"") » FPUTC 

e$=usri<fT$+"_ ,> 

WEND 

W$=USR4(F2$ + .,") , FCLOSE 

END 

PRINT "ERROR! ,•: STOP 


»RETURN 
FILE NO. 

EOF(-l)NOT(0) 
DATA 

? 

9 

LENGTH , p256- 

9 

LENGTH , p256- 


*OPEN READ 
^PEN WRITE 


U スト 7 CON. 巳 AS 


1000 ' 

1010 'CON.BAS FOR INTEGRAL X (WITH FDC.OBJ) 

1020 * By M.Kameda 

1030 CLEAR &HCC00 
1040 1 LOADM , •1:FUNC. OBJ 


1050 DEFINT A-Z : v_stop=«cHE08C : v_mac=4HB097 : a_eof=4HECE7 

1060 ' *NAME 拿 ! IETURN 


1070 DEFUSR0=tHCC00 
1080 DEFUSRU&HCC03 
1090 DEFUSR2=AHCC06 
1100 DEPUSR3=&HCC09 
me DEFUSR4=&HCC0C 


1 FOPEN USR(R(1)/W(2) 
*FEOF USR(FILE NO.) 

* FGETC USR(FILE NO.) 

* FPUTC USR(DATA) 

, FCLOSE USR(FILE NO.) 


,FILE NAME) FILE NO. 

EOP(-l) NOT(0) 
DATA 


1120 DEFUSRS = &HCCOF * FREADS USR(FILE NO.) 


LENGTH , p256- 


1130 DEFUSR6=&HCC12 'FWRITS USR(DATA) 

1140 DEFUSR7 = &HCC15 * FREAD USR<LENGTH) 

1150 , FILE NO.=l(RBAD)/2(WRITE) 


LENGTH , p256- 


INTEGRAL.XI 127 









1160 


1170 D2 拿: : USR0<CHR 黎 ( 2> + "Y:COPY.DOC"> ,自分のファイル名にする ,OPEN WRITE 
1180 M=PEEK(v mac ) : IF M=2 OR M=4 THEN CR^=CHR$<13,10> ELSE CR$=CHR$(13) 
1190 1 MS-DOS XI 

1200 F2$=LEFTt(D2$,l):IF ASC(F2$)<>2 THEN 1350 
1210 * 


1220 REPEAT 
1230 S$=" W : D$="" 

1240 REPEAT 
1250 S$=S|+D 拿 

1260 D$sINKBYt<U:D=ASC<D$} 

1270 PRINT D 拿: 

1280 UNTIL D=26 OR D=13 
1290 IF D=13 THEN S$=St+CRt 
1300 W$rUSR6(S|) 

1310 UNTIL D:26 
1320 W$=USB4(P2»4"") 


’1 行入力 
*13..[RBTJ 
•26. .CTRL+Z 

*PWRITS 


*FCLOSE 


1330 END 


1340 * 


1350 PRINT ” ERROR!STOP 


■ J スト日 FDUMP.BAS 


leee 

me 

1620 

1030 

1040 

1050 

1060 

1070 

1080 

1090 

1100 

1110 

1120 

1130 

1140 

1150 

1160 

1170 

1180 

1190 

1200 

1210 

1220 

1230 

1240 

1250 

1260 

1270 

1280 

1290 

1300 

1310 

1320 


•FDUMP.BAS FOR INTEGRAL X (WITH FDC.OBJ) 

* By M.Kameda 
CLEAR &HCCee 

* LOADM "1 : FUNC.OBJ M 

DBFINT A-Z : v_Btop=kHE08C : p256=iHBK00 
' 拿 NAME 

DEFUSR0=4HCC00 »FOPEN USR(R(1)/W(2) 

DBFUSR1=4HCC03 *FEOF USR(FILB NO.) 

DBFUSR2=ftHCCe6 1 FGBTC USR(FILB NO.) 

DKFUSR3=4HCC09 'FPUTC USR(DATA) 

DKFUSR4=4HCC0C *FCLOSE USR(FILB NO.) 

DBFUSR5=liHCC0F 'FRBAD8 USR(FILB NO.) 

DBFUSR6=4HCC12 'FWRITS USR(DATA) 

DBFUSR7=fcHCC15 ’FREAD USR(LENGTH) 

* FILE NO.=l(RBAD)/2(WRITB) 


*RETURN 

FILE NAME) FILE NO. 

EOF(-l)NOT(O) 
DATA 
? 

? 

LKNGTH , p256- 
o 

LENGTH , p256- 


D1$=USR0(CHR$(1) + "V : COPy.DOC") •自分のファイル名にする 
F1$=LBFT$(D1$,1):IF ASC(F1$)<>1 THEN 1320 
K$=USR1(F1»+"") 

WHILE ASC(B$)=0 AND PEEK(v atop)=0 
Wt=USR7(CHR$( 16)) : L=ASC(W$) 

FOR 1=0 TO L-l 

PRINT RIGHT$("0 ,, + HBX$(ASC(MEM$(p256 + I > 1))), 2 ) ; ,f M ; 
NEXT 

PRINT TAB{49) ; :PRINT#0"/ " ; MEM)(p256,L) 

B$=USRl(Fl$ + , '") 

WEND 

END 

i 

PRINT "ERROR;":STOP 


•EOF? 

*FREADS 


| リスト 9 FUNC.RED 


0000 




1 

Ifunc.reu 


CC18 



♦ 

61 

; 

CC77 

32 

66 

CP 

121 

LD (BOR),A 

0000 




2 


CC18 

00 

00 


62 

FPOT1 DW 0 ;R 

FPOT2 DW 0 ;R 

CC7A 

21 

oe 

00 

122 

LD HL t 0 

0000 




3 

; 

WITH KAME-DOS 

CCIA 

00 

00 


63 

CC7D 

22 

18 

CC 

123 

LD (FPOTl) f HL 

0000 




4 

; 


Vor 1.0 

CCIC 




64 

; 

CC80 

22 

5D 

CP 

124 

LD (INBP1),HL 

eoee 




5 

; FOR S-03 REDA 


CCIC 




65 


CC83 

3E 

ei 


125 

LD A v l 

eeee 




6 




CCIC 




68 

; 

CC85 




126 

ERRRETR 

ccee 




7 

org 黎 ccee 


CCIC 




67 

;FOPEN 

CC85 

ED 

5B 

62 CF 

127 

LD DB,(USRWK) 

LD (DE),A 

CCO0 




8 




CCIC 




68 

;(R,W)-(KILBNAME) 

CC89 

12 



128 

D080 

P 



9 

tZOKU 

EQU $0080 ;POKB ADR. 

CCIC 




69 

; 

CC8A 

C9 



129 

RET 

D180 

P 



ie 

#00 

BQU $D180 


CCIC 




70 

OPBNl 

CC8B 




130 


D181 

P 



11 

#OP 

EQU $D181 
BQU $0182 


CCIC 

ED 

53 

62 CF 

71 

LO (USRWK).OB 

LD A»$10 

CC8Q 




131 

OPENW 

D182 

P 



12 

♦ FCR3 


cc 2 e 

3B 

10 


72 

CC8B 

3K 

07 


132 

LD A,7 

0184 

P 



13 

IYBN 

BQU 90184 


CC22 

32 

E5 

BC 

73 

LD (4B3CP) 9 A 

CC8D 

32 

8C 

Dl 

133 

LD (IDDRVf2) 9 A 

0186 

P 



14 

«FSZL 

EQU $0186 


CC25 

1A 



74 

LD A 9 (DB) 

CC90 

CD 

E6 

CC 

134 

CALL SMACDN 

D18A 

P 



15 

IDDRV 

EQU SD18A 


CC26 

13 



75 

INC DB 

CC93 

3E 

ei 


135 

LD A.l 

E054 

P 



16 

tFLMM 

BQU IB054 


CC27 

05 



76 

DBC B 

CC95 

32 

65 

BO 

136 

LD (ISBDR),A 

E065 

P 



17 

ISBDR 

BQU IB065 


CC28 

PB 

01 


77 

CP 1 

CC98 

3R 

02 


137 

LD A,2 

卵68 

P 



18 

IP 細 

EQU $Ee68 


CC2A 

28 

ec 


78 

JR Z.OPBNR 

CC9A 

32 

80 

Dl 

138 

LD (IOD).A 

B078 

P 



19 

#FBYT 

BQU $Ee78 


CC2C 

FB 

02 


79 

CP 2 

CC9D 

3B 

03 


139 

LD A,3 

E08C 

P 



20 

ISTOP 

BQU tB08C 


CC2B 

28 

5B 


80 

JR Z.OPBNV 

CC9F 

32 

81 

Dl 

M0 

LD (IOP),A 

E08B 

P 



21 

»DN 

EQU $B08B 


CC30 

3B 

FF 


81 

LD A # $FF 

CCA2 

C5 



141 

PUSH BC 

B091 

P 



22 

#BF 

BQU $E091 


CC32 

BD 

5B 

62 CP 

82 

LD DB.(USRWK) 

CCA 3 

D5 



142 

PUSH DE 

B097 

P 



23 

IMAC 

BQU $8097 


CC36 

12 



83 

LD (DB),A 

CCA4 

CD 

21 

DO 

143 

CALL •PREOP 

E09B 

P 



24 

• BDR 
#IOFC 

BQU 拿 E09B 


CC37 

C9 



84 

RET 

CCA7 

Dl 



144 

POP DB 

E09C 

P 



25 

EQU $E09C 


CC38 




85 


CCA8 

Cl 



145 

POP BC 

B09D 

P 



26 

#MSBT 

BQU $B09D 


CC38 




86 

OPENR 

CCA9 

3A 

BC 

Be 

146 

LD A,(fSTOP) 

OR A 

JR H2.RBTVW 

ECC0 

P 



27 

&HAC4 

BQU 拿 Bcce 
BQU SECCO ♦: 


CC38 

3B 

07 


87 

LD A f 7 

CCAC 

B7 



147 

BCB3 

P 



28 

4BS1Z 

)5 

CC3A 

32 

8B 

Dl 

88 

LD («DDRVtl)»A 

CCAD 

2e 

IB 


148 

BCB5 

P 



29 

ABSCP 

EQU *ECC8+37 

CC3D 

CD 

B6 

CC 

89 

CALL SMACDN 

CCAP 

68 



149 

LD L»B 

BCB7 

P 



3e 

4B0F 

BQU »ECC0+39 

CC40 

AP 



90 

XOR A 

CCBO 

3A 

84 

Dl 

159 

LD A,(»YBN) 

ECE8 

P 



31 

&E0F3 

BQU $BCC«^4e 

CC41 

32 

81 

Dl 

91 

LD (IOP).A 

CCB3 

47 



151 

LD B,A 

BCDF 

P 



32 

ISBUFF 

BQU $BCDF 


CC44 

3E 

61 


92 

LD A,1 

CCB4 

7D 



152 

LD A t L 

BB0e 

P 



33 

P256 

BQU IEE0O 


CC46 

32 

80 

Dl 

93 

LD (IOD) f A 

CCB5 

9e 



153 

SUB B 

CC00 




34 




CC49 

32 

65 

se 

94 

LD (ISBDR),A 

CCB6 

6F 



154 

LD し, A 

6003 

P 



35 

IDLFAT 

BQU 攀 BO03 : 

;CALL ADR. 

CC4C 

C5 



95 

PUSH BC 

CCB7 

26 

ee 


155 

LD H v 0 

E012 

P 



36 

ILDAHL 

BQU 9E012 


CC4D 

D5 



96 

PUSH DB 

CCB9 

19 



156 

ADD HL # DB 

EX DB.HL 

LD A t l 

E015 

P 



37 

•LDADB 

equ $seis 


CC4B 

CD 

21 

D0 

97 

CALL IPRBOP 

CCBA 

BB 



157 

B018 

P 



30 

ILDDeA 

BQU IE018 


CC51 

D1 



98 

POP DB 

CCBB 

3B 

ei 


158 

E02A 

P 



39 

IDIVHD 

BQU $Ee2A 


CC52 

Cl 



99 

POP BC 

CCBD 

32 

65 

Ee 

159 

LD (ISBDR),A 

0006 

P 



40 

• DIR2 

EQU $0006 


CC53 

3A 

8C 

Ee 

iee 

LD A 9 (9STOP) 

ccce 

3B 

02 


16 e 

LD A,2 

DO0C 

P 



41 

IDBVI 

EQU 拿 Doec 


CC56 

BT 



101 

OR A 

CCC2 

92 

80 

Di 

161 

LO (#OD) t A 

D012 

P 



42 

IDLDIR 

BQU ID012 


CC57 

20 

OP 


102 

JR NZ.RBTVR 

CCC5 

3B 

03 


162 

LD A 9 3 

0015 

P 



43 

fSAVED 

BQU $D015 


CC59 

68 



103 

LD L V D 

CCC7 

32 

81 

Dl 

163 

LD («OP) 9 A 

0021 

P 



44 

#PREOP 

EQU $De21 


CC5A 

3A 

84 

Dl 

104 

LD A«(#YBH) 

CCCA 

CD 

24 

DO 

164 

CALL IOPBNS 

D024 

P 



45 

IOPBNS 

EQU 拿 D02« 


CC5D 

47 



105 

LD B V A 

CCCD 




165 

RBTVW 

D02A 

P 



46 

fDIRSB 

EQU $D02A 


CC5E 

7D 



106 

LD A,L 

CCCD 

3A 

8C 

BO 

166 

LD A,(#STOP) 

D108 

P 



47 

#FMAC 

SFTJIS9 

BQU SDie8 


CC5P 

90 



107 

SUB B 

CCDO 

B7 



167 

OR A 

2F81 

P 



48 

EQU 92F81 


ccee 

6F 



108 

LD L f A 

CCD1 

3E 

FF 


168 

LD A,$FP 

JR HZ.BRRRETW 

2PB6 

P 



49 

JISVRM 嫌 

BQU S2FB6 


CC61 

26 

ee 


109 

LD H,0 

CCD 3 

20 

OB 


169 

3099 

P 



50 

SPTCHM 

EQU $3099 


CC63 

19 



110 

ADD HL,DE 

CCD5 

21 

00 

ee 

170 

LO HL 0 6 

CCOO 




51 




CC64 

EB 



111 

EX DB 9 HL 

CCD8 

22 

1A 

CC 

171 

LD (FPOT2),HL 

ccee 




52 

; 



CC65 

CD 

24 

D0 

112 

CALL 雜 OPENS 

CCDB 

22 

5F 

CF 

172 

LD (INBP2) 9 HL 

LD A,2 

CCOO 

C3 

1C 

CC 

S3 

FOPEN 

JP OPBN1 

USR 

CC68 




113 

RETVR 

CCDB 

3E 

02 


173 

CC03 

C3 

F7 

CC 

54 

FBOFJ 

JP EOF? 

USR 

CC68 

3A 

8C 

bo 

114 

LD A,<#STOP) 

CCE0 




174 

ERRRETW 

CC06 

C3 

2B 

CD 

55 

FGETC 

JP CETC 

USR 

USR 

CC6D 

B7 



115 

OR A 

CCEO 

HD 

5B 

62 CF 

175 

LD DE 9 (USRVK) 

CC09 

C3 

B1 

CD 

56 

FPUTC 

JP PUTC 

CC6C 

3E 

FF 


116 

LD A,$PF 

JR NZ.BRRRETR 

CCE4 

12 



176 

LD (DE) t A 

CC0C 

C3 

32 

CE 

57 

FCLOSE 

JP CLOSE 

USR 

CC6B 

20 

15 


117 

CCE5 

C9 



177 

RET 

CC0F 

C3 

99 

CB 

58 

FRBADS 

JP READS 

USR 

CC70 

AF 



U8 

XOR A 

CCE6 




178 


CC12 

C3 

FE 

CB 

59 

FWRITS 

JP WRITS 

USR 

CC71 

32 

61 

CP 

119 

LD (I0FG1) # A 

CCE6 




179 

• 

CC15 

C3 

IB 

CF 

60 

FREAD 

JP RBAD 

USR 

CC74 

32 

6S 

CF 

120 

LD (PEOF),A 

CCE6 




180 

SMACDN 


128 Oh! X 1991.2. 


►受験生は各自の黄任において解凍……。そうはいっても記事を読んだら解凍せずにはい 
られない。今年の冬は長くなるかもしれません。 川野啓祐( 18 >千葉県 







CCE6 

C5 



181 

PUSH BC 

CDBB 

ED 

4B 

B3 EC 

321 

LD BC t (4BSIZ) 

CCE7 

3A 

8B 

B0 

182 

LD A,<#DN) 

CDC2 

09 



322 

ADO HL.BC 

CCBA 

4F 



183 

LD C,A 

CDC3 

ED 

4B 

5F CF 

323 

LD BC.(INBP2) 

CCEB 

06 

00 


184 

LD B v 0 

CDC7 

09 



324 

ADD HL.BC 

CCED 

21 

CO 

EC 

185 

LD HL.&NAC4 

CDC8 

IA 



325 

LD A,(DH) 

CCF0 

09 



186 

ADD HL.BC 

CDC9 

EB 



326 

EX DE.HL 

CCPi 

7E 



187 

LD A»(HL) 

CDCA 

CD 

18 

EO 

327 

CALL fLDDEA 

CCF2 

32 

9? 

EO 

188 

LD (IMAC) 9 A 

CDCD 

2A 

IA 

CC 

328 

LD IIL, (FPOT2) 

CCF5 

Cl 



189 

POP BC 

COD ❶ 

23 



329 

INC HL 

CCF6 

C9 



190 

RET 

CDD1 

22 

iA 

CC 

330 

LD (FPOT2),HL 

CCF7 




191 


CDD4 

2A 

5F 

CP 

331 

LD IIL, (INBP2) 

CCF7 




192 


CDD7 

23 



332 

INC HL 

CCF7 




193 

FEOF() 

CDD8 

22 

5F 

CF 

033 

LD (INBP2),HL 

CCF7 




194 

(FILNO) 

CDDB 

AK 



334 

XOR A 

CCF7 




195 


CDDC 

32 

9B 

EO 

335 

LD (IKDR) t A 

CCF7 




196 EOF? 

CDOF 

ED 

5B 

E3 EC 

336 

LD DE,(&DSIZ) 

CCF7 

F5 



197 

PUSH AF 

CDH3 

i\l 



337 

OR A 

CCF8 

C5 



198 

PUSH BC 

C0E4 

EO 

52 


338 

SBC HL.DE 

CCF9 

D5 



199 

PUSH DE 

CDE6 

CC 

FO 

CD 

339 

CALL Z.PUTDBIO 

CCFA 

E5 



200 

PUSH IIL 

CDE9 




340 r 

»UTRKT 

CCFB 

D5 



20t 

PUSH DE 

CDE9 

DD 

El 


341 

POP IX 

CCFC 

11 

64 

CF 

202 

LD DE,EOFWK 

CDEB 

El 



342 

POP HL 

CCFF 

CD 

06 

CC 

203 

CALL FGKTC 

COEC 

Di 



343 

POP DE 

CD02 

2A 

18 

CC 

204 

LD HL,(PPOTl) 

CDED 

Cl 



344 

POP BC 

CD05 

2B 



205 

DEC HL 

CDEB 

FI 



345 

POP AF 

CD06 

22 

18 

CC 

206 

LD (FPOTl),HL 

CDHF 

C9 



346 

RET 

CD09 

2A 

5D 

CF 

267 

LD HL,(INBPl) 

CDFO 




347 


CD0C 

23 



208 

INC HL 

CDFO 




348 : 


CD0D 

22 

5D 

CP 

299 

LD (INBPl).HL 

CDFO 




349 PUTDEIO 

CD19 

Dl 



2ie 

POP DB 

CDFO 

2A 

5F 

CF 

350 

LD HL,(INQP2) 

CD11 

入 P 



211 

XOR A 

CDF3 

22 

9D 

H0 

351 

LD (IHSBT),HL 

CD12 

12 



212 

LD (DE),A 

CDF6 

3E 

ei 


352 

LD A V 1 

CD13 

32 

65 

CF 

213 

LD (FEOF),A 

CDP8 

32 

8B 

Dl 

353 

LD (IDDRV+U.A 

CD16 

3A 

64 

CF 

214 

LD A t (EOFWK) 

CDPB 

3B 

07 


354 

LD A # 7 

CD19 

47 



215 

LD B t A 

CDPD 

32 

8C 

Dl 

355 

LD («DDRV^2) t A 

CD1A 

3A 

B7 

EC 

216 

LD A •( 龜 BOP> 

CE0Q 

3E 

02 


356 

LD A,2 

CDiD 

B8 



217 

CP B 

CE02 

32 

9C 

E0 

•357 

LD (IIOPG) f A 

CD1B 

20 

06 


218 

JR HZ,EOFRBT 

CE0S 

CD 

0P 

CE 

358 

CALL PUTDE2 

CD20 

3B 

FF 


219 

LD A,-l 

CB08 

21 

00 

00 

359 

LD HL v e 

CD22 

12 



220 

LD (DB},A 

CE0B 

22 

5F 

CP 

360 

LD (INBP2) V HL 

CD23 

32 

65 

CP 

221 

LD (FBOF),A 

CE0B 

C9 



361 

RBT 

CD26 




222 EOFRBT 

CE0P 




362 


CD26 

B1 



223 

POP HL 

CBOP 




363 ; 


CD27 

Dl 



224 

POP DE. 

CE0F 




364 PUTDE2 

CD28 

Cl 



225 

POP BC 

ceep 

3B 

CD 


365 

LD A,«CD 

CD29 

FI 



226 

POP AF 

CE11 

21 

29 

CE 

366 

LD HL,PATCHPUT 

CD2A 

C9 



227 

RET 

CB14 

32 

7A 

DB 

367 

LD ($DB7A),A 

CD2B 




228 


CB17 

22 

7B 

DB 

368 

LD ($DB7B),Ht 

CD2B 




229 


CE1A 

CD 

ec 

DO 

369 

CALL 参 DEVI 

CD2B 




230 

FCETC ClBYTE FROM FILE] 

CE1D 

3E 

2A 


370 

LD A,$2A 

CD2B 




231 

(FILNO) 

CB1F 

21 

A4 

B0 

371 

LD HL • 黎 £0A4 

CD2B 




232 


CE22 

32 

7A 

DB 

372 

LD ($DB7A),A 

CD2B 




233 GETC 

CE25 

22 

7B 

DB 

373 

LD ($DB7B),HL 

CD2B 

F5 



234 

PUSH AF 

CE28 

C9 



374 

RET 

CD2C 

C5 



235 

PUSH BC 

CE29 




375 


CD2D 

D5 



236 

PUSH DB 

CE29 




376 r 

>ATCHPUT 

CD2E 

E5 



237 

PUSH HL 

CE29 

2A 

DF 

EC 

377 

LD HL,(ISBUFF) 

CD2F 

DD 

E5 


238 

PUSH IX 

CE2C 

ED 

5B 

E3 EC 

378 

LD DE,(&QSIZ) 

CD31 

3A 

65 

CF 

239 

LD A,(FEOF) 

CE30 

19 



379 

ADD HL r DE 

CD34 

B7 



240 

OR A 

CE31 

C9 



380 

RET 

CD35 

20 

3K 


241 

JR HZ.EXCREAD 

CE32 




381 


CD37 

ED 

53 

62 CF 

242 

LD (USRWK),DE 

CE32 




382 


CD3B 

2A 

5D 

CF 

243 

LD HL,(INBPl) 

CE32 




383 

FCLOSE 

CD3E 

7C 



244 

LD A,H 

CE32 




384 

(FILNO) 

CD3F 

B5 



245 

OR L 

CE32 




385 


CD40 

CC 

7C 

CD 

246 

CALL Z,CETDEIO 

CE32 




386 CLOSE 

CD4 3 

3A 

8C 

BO 

247 

LD A,(ISTOP) 

CB32 

F5 



387 

PUSH AF 

CD46 

B7 



248 

OR A 

CE33 

C5 



388 

PUSH BC 

CD4 7 

20 

25 


249 

JR NZ.CBTRET 

CE34 

D5 



389 

PUSH DE 

CD49 

2A 

18 

CC 

250 

LD HL f (FPOT1) 

CE35 

E5 



390 

PUSH HL 

CD4C 

ED 

$B 

E3 EC 

251 

LD DE,(&BSIZ) 

CE36 

DD 

E5 


391 

PUSH IX 

CD50 

CD 

2A 

EO 

252 

CALL IDIVHD 

CE38 

IA 



392 

LD A,(DH) 

CDS3 

ED 

5B 

DF EC 

253 

LD DE,(ISBUFF) 

CE39 

FE 

02 


393 

CP 2 

0057 

19 



254 

ADD HL.DE 

CE3B 

20 

39 


394 

JK NZ f CLOSERET 

CD58 

CO 

12 

EO 

255 

CALL ILDAHL 

CE3D 

11 

64 

CF 

395 

LD DB,EOFWK 

CD5D 

ED 

5B 

62 CF 

256 

LD DB,(USRWK) 

CE40 

3A 

E8 

KC 

396 

LD A,(&EOF3) 

CD5F 

12 



257 

LD (OB),A 

CE4 3 

U 



397 

LD <DE),A 

CD60 




258 


CE44 

06 

01 


398 

LD i\ t \ 

CD60 

2A 

18 

CC 

259 

LD HL,(PPOTll 

CK46 

CD 

09 

CC 

399 

CALL FPUTC 

CD63 

23 



260 

INC IIL 

CE49 

CO 

7D 

CK 

400 

CALL CLKBF 

CD64 

22 

18 

CC 

261 

LD (FPOTi) # HL 

CE4C 

3E 

01 


401 

LD A 9 1 

C067 

2A 

5D 

CF 

262 

LD IIL, (INBPl) 

CE4E 

32 

9B 

E0 

402 

LD <»EDR),A 

CD6A 

2B 



263 

DEC HL 

CK51 

CD 

F0 

CD 

403 

CALL PUTDEIO 

CD6D 

22 

5D 

CF 

264 

LD (INUPt) V HL 

CE54 

2A 

IA 

CC 

404 

LD HL,(FPOT2) 

CD6E 




265 GKTRHT 

CB57 

22 

86 

Dl 

405 

LD (»FSZL),HL 

CU6E 

DD 

Kt 


266 

POP IX 

CE5A 

21 

00 

ee 

406 

LD HL f 0 

CD70 

El 



267 

POP HL 

CE5D 

22 

88 

Dl 

407 

LD (#FS2L^2),HL 

CD7i 

Di 



268 

POP DR 

CE6e 

3A 

ea 

Dl 

408 

LD A,(IPMAC) 

CD72 

Cl 



269 

1>01» BC 

CB63 

B6 

01 


409 

AND 1 

C073 

FI 



270 

POP AK 

CB65 

3B 

04 


410 

LD A f 4 

0074 

C9 



271 

KKT 

CE67 

20 

02 


411 

JR N2 .HACZOKU 

CD75 




272 


CE69 

3B 

20 


412 

LD A f $20 

CD75 




273 


CB6B 




413 HACZOKU 

0075 




274 EXCRKAD 

CE6B 

32 

82 

De 

414 

LD (#20KU^2),A 

0075 

3E 

09 


275 

LI) A,9 

CE6E 

3B 

02 


415 

LD A v 2 

CD77 

32 

8C 

EO 

276 

LD ( ISTOP),A 

CE70 

32 

80 

Dl 

416 

LD (tOD) # A 

CD7A 

18 

F2 


277 

JR GETRET 

CE73 

CD 

15 

D0 

417 

CALL .SAVED 

CD7C 




278 


CE76 




418 CLOSBRET 

CD7C 




279 


CB76 

DD 

B1 


419 

POP IX 

CD7C 




280 QETDBIO 

CE78 

B1 



420 

POP HL 

CD7C 

3A 

66 

CP 

281 

LD A,(EOR) 

CB79 

Dl 



421 

POP DB 

CD7F 

B7 



282 

OR A 

CE7A Cl 



422 

POP BC 

CD80 

28 

06 


283 

JR Z V GBT3K1 

CB7B 

FI 



423 

POP AF 

CD82 

3B 

09 


284 

LD A,9 

CE7C 

C9 



424 

RBT 

CD84 

32 

8C 

BO 

285 

LD (ISTOP),A 

CE7D 




425 


CD87 

C9 



28$ 

RET 

CE7D 




426 


CD88 




287 GBTSK1 

CK7D 




427 CLRBF 

CD88 

3E 

«7 


288 

し D A,7 

CE7D 

2A 

DF 

EC 

428 

LD HL,(ISBUFF) 

CD8A 

32 

8B 

Dl 

289 

LD UDDRV+U t A 

CE80 

ED 

5B 

E3 BC 

429 

LD DB,(4BSIZ) 

C08D 

3B 

01 


290 

LD A,1 

CE84 

19 



430 

ADD HL»DE 

CD8F 

32 

8C 

Dl 

291 

LD (#DORV^2),A 

CE85 

ED 

5B 

5F CP 

431 

LD DB,(INBP2) 

C092 

3A 

6i 

CF 

292 

LD A t (IOFGl) 

CB89 

19 



432 

ADD HL 9 DB 

CD95 

32 

9C 

Be 

293 

LD (#ZOFG),A 

CE8A 

EB 



433 

EX DE V HL 

CD98 

CD 

OC 

DO 

294 

CALL IDBVI 

CE8B 




434 CLRBF し P 

CD9B 

3A 

9C 

E0 

295 

LD’At(ilOFO) 

CB8B 

AF 



435 

XOR A 

CD9B 

B7 



296 

OR A 

CB8C 

CD 

18 

Ee 

436 

CALL fLDDEA 

CD9P 

20 

06 


297 

JR NZ.GBTDESK 

CE8P 

13 



437 

INC DH 

CDA1 

3B 

FF 


298 

LD A,-l 

CE90 

2A 

E3 

BC 

438 

LD HL t (&BS1Z) 

CDA3 

32 

66 

CF 

299 

LD (EOR),A 

CB93 

B7 



439 

OR A 

CDA6 

AF 



300 

XOR A 

CE94 

ED 

52 


44e 

SBC HL V DE 

CDA7 




301 CBTDBSK 

CE96 

20 

P3 


441 

JR NZ.CLRBFLP 

CDA7 

32 

61 

CP 

302 

LD (IOFOl),A 

CB98 

C9 



442 

RET 

CDAA 

2A 

9D 

E0 

303 

LD HL, UHSBT) 

CE99 




443 


CDAD 

22 

5D 

CP 

394 

LD (INBPl).HL 

CE99 




444 


CDBO 

C9 



305 

RBT 

CE99 




445 

FHBADS 

CDB1 




306 


CE99 




446 

(FILNO) 

CDB1 




307 


CE99 




447 


CDB1 




308 

; FPUTC ClBYTE TO PILE] 

CE99 




448 RBADS 

CDB1 




309 

; (DATA) 

CB99 

F5 



449 

PUSH AF 

CDBl 




310 


CE9A 

C5 



450 

PUSH BC 

CDB1 




3111 

PUTC 

CE9B 

D5 



451 

PUSH DB 

CDBl 

F5 



312 

PUSH AP 

CE9C 

E5 



452 

PUSH HL 

CDB2 

C5 



313 

PUSH BC 

CE9D 

DD 

E5 


453 

PUSH IX 

CDB3 

D5 



314 

PUSH DB 

CE9F 

D5 



454 

PUSH DE 

CDB4 

B5 



315 

PUSH HL 

CEA0 

06 

FF 


455 

LD B.25S 

CDB5 

DD 

E5 


316 

PUSH IX 

CEA2 

21 

00 

EE 

456 

LD HL.P256 

CDB7 

78 



317 

LD A»B 

CEA5 




457 READSLP 

CDE8 

B7 



318 

OR A 

CBA5 

LI 

64 

CF 

458 

LD DE,EOFWK 

C0B9 

28 

2B 


319 

JR Z.PUTRET 

CEA8 

3B 

01 


459 

I.D A, l 

CDBB 

2A 

DP 

EC 

329 

LD HL,(ISBUFF) 

CEAA 

12 



460 

LD (D6) t A 


CEAB CD 06 CC 
CEAE 1A 
CBAF 4F 
CEBO 3A B7 EC 
CEB3 B9 
CEB4 20 10 
CEB6 2A 18 CC 
CEB9 2B 
CHBA 22 18 CC 
CEBD 2A 50 CF 
CKCO 23 
CEC122 5D CF 
CEC418 2D 
CEC6 
CEC6 79 
CEC7 FE OD 
CEC9 20 IE 
CECB 11 64 CF 
CECE 3E 01 
CEDO12 
CEDI CD 06 CC 
CED41A 
CED5 FE OA 
CED7 281A 
CBD9 2A 18 CC 
CBDC 2B 
CEDD 2218 CC 
CEBO 2A 5D CF 
C6E3 23 
CEE4 22 5D CF 
CBB718 OA 
CBB9 

CBE9 3A 8C E0 
CEEC B7 
CEBD 20 04 
CBBF 71 
CBF0 23 
CBF110 B2 
CEF3 
CEF3 78 
CEF4 2F 
CEF5 D1 
CEF612 
CEF7 DD El 
CEF9 El 
CEFA D1 
CEFB Cl 
CEFC FI 
CEFD C9 
CEFE 
CEFE 
CEFE 
CEFE 
CEFE 
CEFE 
CEFE F5 
CEFF C5 
CF0O D5 
CFOi E5 
CF02 DD E5 
CF04 78 
CF05 B7 
CF06 28 OC 
CF08 

CF08 CD 09 CC 
CF0B 3A 8C EO 
CFOB B7 
CFOF 20 03 
CPU 13 
CF1210 F4 
CF14 

CF14 DD El 

CF16 El 

CF17 D1 

CF18 Cl 

CF19 FI 

CP1A C9 

CF1B 

CPIB 

CPIB 

CPIB 

CF1B 

CF1B 

CF1B F5 

CF1C C5 

CF1D D5 

CF1E B5 

CF1F DD E5 

CF21 D5 

CF22 IA 

CF23 47 

CF24 2i ee EE 

CF27 

CF271164 CF 
CF2A 3E ei 
CF2C 12 
CF2D CD 06 CC 
CF30 U 
CF314F 
CF32 3A E7 EC 
CF35 B9 
CF36 2010 
CF38 2A 18 CC 
CF3B 2B 
CK3C 2218 CC 
CF3F 2A 5D CF 
CF42 23 
CF43 22 5D CF 
CF4618 OA 
CF48 

CF48 3A 8C E0 
CF4B B7 
CF4C 20 C4 
CF4E 71 
CF4F 23 
CF50 10 D5 
CF52 
CF52 Dl 
CF53 iA 
CF54 90 
CF5512 
CF56 DD El 
CF58 El 
CF59 Dl 
CF5A Cl 
CF5B FI 
CF5C C9 
CF5D 
CF50 
CF5D 
CF5D 

CF5D 00 00 
CF5F 00 00 
CF61 00 
CF62 00 00 
CP64 00 
CF65 00 
CF66 00 
CF67 


461 

462 

463 

464 

465 

466 

467 

468 

469 

470 

471 

472 

473 

474 

475 

476 

477 

478 

479 

480 

481 

482 

483 

484 

485 

486 

487 

488 

489 

490 

491 

492 

493 

494 

495 

496 

497 

498 

499 

500 

501 

502 

503 

504 

505 

506 

507 

508 

509 

510 

511 

512 

513 

514 

515 

516 

517 

518 

519 

520 

521 

522 

523 

524 

525 

526 

527 

528 

529 

530 

531 

532 

533 

534 

535 

536 

537 

538 

539 

540 

541 

542 

543 

544 

545 

546 

547 

548 

549 

550 

551 

552 

553 

554 

555 

556 

557 

558 

559 

560 

561 

562 

563 

564 

565 

566 

567 

568 

569 

570 

571 

572 

573 

574 

575 

576 

577 

578 

579 

580 

581 

582 

583 

584 

585 

586 

587 

588 

589 

590 

591 

592 

593 

594 

595 

596 

597 

598 

599 


CALL FCETC 
LD A 9 (DB) 

LD C,A 
LD A,UEOF> 

CP C 

JR NZ.READSSK 


DRC IIL 

LD (FPOTI),MI¬ 
LD HL,(INBPl) 
INC HL 

LD ( INDPl ) f IIL 
JH READSHET 
READSSK 
LD A*C 
CP SOD 

JR NZ V READSSK2 
LD DR.EOFWK 
LD A,1 
LD (DE),A 
CALL FGETC 
LD A,(DE) 

CP $0A 

JR Z.READSRET 
LD HL f (FP0T1) 
DEC HL 

LD (FPOTl),HL 
LD HL»(INBPl) 
INC HL 

LD (INBPl 丨 ,HL 
JR READSRET 
RBADSSK2 

LD A •(参 STOP> 

OR A 

JR NZ.HBADSRBT 
LD (HL),C 
INC HL 

DJNZ READSLP 
READSRBT 
LD A,B 
CPL 
POP DE 
LD (DE) t A 
POP IX 
POP HL 
POP DE 
POP BC 
POP AF 
RET 


;FWRITS 
;(DATA) 

WRITS 
PUSH AF 
PUSH BC 
PUSH DE 
PUSH HL 
PUSH IX 
LD A t B 
OR A 

JR Z.WRITSRET 
WRITSLP 

CALL FPUTC 
LD A,(#STOP) 

OR A 

JR NZ,WRIT3RET 
INC DE 

DJNZ VBITSLP 
WRITSRBT 
POP IX 
POP HL 
POP DB 
POP BC 
POP AF 
RET 


;FRKAD 
;(LENGTH) 

READ 
PUSH AF 
PUSH BC 
PUSH DB 
PUSH HL 
PUSH IX 
PUSH DE 
LD A,(DE) 

LD B f A 
LD HL.P256 
READLP 

LD DE.EOFWK 
LD A f 1 
LD (DE),A 
CALL FGETC 
LD A,(DE) 

LD C,A 
LD A,(&EOP) 

CP C 

JR NZ.READSK 
LD HL, (FPOTU 
DEC ML 

LD (FP0T1),HL 
LD HL f (INDPi) 
INC HL 

LD (INBPl)iHL 
JR RBADRBT 
RCADSK 

LD A,(ISTOP) 

OR A 

JR N7.,READRET 
1*!) (HL) ,C 
INC HL 
DJM # Z RHADLP 
READRET 
POP DE 
LD A,(DE) 

SUB B 
LD (DB) t A 
POP IX 
POP ML 
POP DE 
POP BC 
POP AF 
RKT 


;WORK DATA 

INBPl DW 0 
INBP2 DW 0 
IOFOl DD e 
USRWK DW e 
EOFWK DB 0 
FEOF DB 0 
EOR DB 0 


►今月のディスタにはすごいものを入れてくれたものだ。4月号のディスタには何が入つ 

てくるかいまから楽しみだ。3月18日までディスク5枚を用意しとくぜ。 INTEGRAL.XI 129 

古川照道 (17) 栃木県 












, , ■ . .丨 I ■ 

川扣•叫_••.叫 p •..胃 …"_州,_ r_ii!j||i' l 'H||p.MMi,||||,,..H,,||| r »M||||||i^»^^^ 


… 山‘.山 n ⑴ IIIII •… 1 iiiiimi.h Iin.m 1 , 1111 h, 11111 urn,,.lu.-.irmin 1,111 h"i 111111 tii,. 11111111 u.. ; 111111 ih„ui iuii.m,. m >...tin..., . " 山 "",. . n. 

''1 11111 1' 1 , 'll| 卜 : 1 "” "II,"'•"liln " ,| 11 ) ,|1"'':;|1! """111111 ",">IUH ""… ,iriH " ,ド .、, il 1 "l|| 1 !i''" , i||| 1 |I い " 1 i|||/ ぃ 1 "ip ド ".,|1"""1, nIII 

...パ 

'I,. ‘ | ハ .| 1 : ' 


•.“4 :!、‘•• “L ‘ I !” •.パ I ’ .,い‘.,.. ;* Il ! h .. . . ,.‘..•ベバ ..,ベ,.. 


■ 


以 II 如 «!lillli...iillllllI“.Kmill.••••< 14111 ...tiililliu "., Iliith.,, 11111111 ^iliili.Miillillu.rfiltlM<M.rtl(llli,..Htl)llH^iililtU.»iiil^ii. ( iillllli.uai ; iIll(. M .illlH “..iHilli.,.. 111111 ii...ii).lllh...illillli•..•nI 

,▲▲▲▲▲▲ ▲▲▲▲▲▲▲▲ ! ii . ; 




マシン語カクテ/レ in Z 80 ’s Bar 

第 18 回——乱数は世界を救うか 


シナリオ:西川善司 
イラスト:山田純二 



今月はひさびさに西川善司君がメインとなるフシン語カクテル。ち 
やんと話が進行するのかどろかちよつと心配ですが,大丈夫でしよ 
ろか。まあ,ネタは乱数生成法といろことですから,とりあえすで 
だらめに進めればいい? 


季節外れの台風の日。 

丨カラン,コローン(ドアべルの音) 

……ゴーゴー(外の風の音) 

……バタン(ドアの閉まる音) 

西川善司(以下善):おや,みなさんこん 
な台風の日にお揃いでどうしたんです? 

源光(以下光):とかなんとかいって自分 
だってやってきたくせに。 

マスター (以下 M ) :やあ,善さん, いらっ 
ゃい。今日は一体どうしたんですか。先月 
は1回も来なかったのに。 

善:ぎくんちょ。 

山田純二(以下純):で,今日は……わか 
った。ゼンジソフトでまたくだらないもの 
を 作っていて 行き詰まったんでしょう? 
善:はふ,ちょっとため息。いえね,いま 
ちょっとしたゲームを 作って いるんですが 
ね。乱数の作り方がわかんないんですよ。 
長老(以下老):まったくお前というやつ 
は,そんな基本も知らんでどうする! 

純:「ランスウ」というと,あのアリスソ 
フトの代表作? 

光:それは 「ランス」 でしょ (しっかり 知 

ってるやつ)。 

善:あ,皆さんもやったんですかあ。あれっ 
て結構面白いんですよね。私はシイルちや 
んの フアン なんですよ。 へへ。 

ようこ(以下 Yo ) :こらこら,そこ。変な 
話題で盛り上がらないように。 

ヵミの味噌汁? 

M :乱数って要するにでたらめな数の並び 
でしょ。作るのがそんなに難しいとは思え 
ませんけどね。 

老:一般にいう「乱数」というのは,実は 
130 Oh! X 1991.2. 


「疑似乱数」のことなんじゃよ。完璧な乱 
数というものはまさに「神のみぞ知る J と 
いったところじゃ。 

善:「髪の味噌汁」?うえ 一っまず そ。 

Yo :あんたは黙ってなさい。 

老: ま,コンピュータで作られる乱数の多 
くは「算術乱数」と呼ばれるものだ。つま 
り,ある「計算」によって求められた答え 
が「乱数」というわけじやのう。 

純:それでは,乱数に規則性や周期が現れ 
てしまうのでは? 

老:確かにな。じゃから,その「規則性」 

や「周期」がなるベく目立たない「疑似乱 
数」を作ろうと世界中がいまも研究をしと 
る。 

光:私が聞いた話では円周率 「 7TJ や自然 
対数の底 re 」 などの無理数の各桁に出現 
する〇〜9の数字はほとんど同様の確率で, 
しかもでたらめの順番に出現していると聞 
いたことがありますね。 

M: へえ 一。 それは確かに先ほどの「神の 
みぞ知る」乱数に近そうですね。 

善:「紙の味噌汁」? 味噌汁はやっぱり豆 
腐とネギがいちばんだね。 

Yo : 善ちゃん,あなたここになにしに来 
たか覚えてる? 

老 :( 無視して)それは,興味深い話題じ 
ゃがそれをもとにして乱数を作るにはちと 
いまの計算機には重荷じゃろう。メモリや 
計算速度の点でな……。 

純:「でたらめ」な数の並びがほしいんな 
らなにかの 「ノイズ」 を ソースに したら ど 
うでしよう力、。 

M :あ,確かに0「ノイズ(雑音)」レベル 
を数値に変換したら乱数になりそうですね。 
善:「ホワイトノイズ」なんかは均等な周 


波数スペクトルを持ってるんだからフィル 
夕やなんかで乱数の上限や下限を設定でき 
るし,いいじやないすかあ。 

老: 確かに 「ツエ ナダイオード (Zener d 
iode )」 などのノイズを ソースに 乱数を作 
ることはある。しかし,そういった乱数は 
「再現性」がないのはわかるじやろう。 

光:あ,なるほど。 

Yo : 「再現性」? 

光:いい かい, ようこちやん。ある数式実 
験で引数に乱数を使う場合を考える。そこ 
で,ある乱数系列で実験結果が得られたと 
して,もう一度この実験を行うとき,「ノ 
イズ」のような再現性のまったくない乱数 
では同じ結果はまず得られないのさ。ま, 
そうした点がこういう「ノイズ」型乱数の 
欠点だね。 

善:どうでもいいけどさあ。早ぐ具体的な 
乱数の発生法を教えてよ。はふはふ。ため 
息2連発出しちゃうよあたしゃ。 

老:誰じゃお前は! 

善:魅由と呼んでっ V ◎ 闇の血族 

mmm 

老:とても簡単で理解しやすいのが「平方 
採中法 」 (Middle sequence method ) と 

いうやつじゃ〇 

M :名前は雛しそうですけど……。 

老:図1を見ながら話をしよう力、まず, 

2進数 a ビットのある初期値を与える。こ 
の値を2乗し,その答えを (2 xa ) 桁の 
レジスタに格納する。そして,そのィ直の真 
ん中の a ビットを求める乱数とし,以降, 
同じことを繰り返していく……というもの 
じや0 



























HL_BUFF: 

DATA: 


: CASE PARAMETERS ARE STR DATA 

••CASE PARAMETERS ARE INT DATA 
;ERROR 
; 戻り镧 


••CASE NO PARAMETERS 

;GET PARAMETERS FROM STR DATA 


••実 R (に乱败を得る 


E02B 

B02D 

B02F 

E031 

8031 

E032 

E035 

B036 

B037 

E039 

K039 

E03A 

B03D 

B03B 

B03E 

B03B 

B040 

E041 

B042 

E045 

E045 

B046 

E047 

B048 

E049 

B04B 

E04C 

E04C 

B04D 

E04F 

B050 

E050 

E052 


CB ID 
CB 3C 
CB ID 


20 F6 
C9 


37 

38 


平方採中法 (8 BITS ) 
ORG 0E000H 


CP 

JR 

CP 

RET 

LD 

JR 

INITIALIZE: 

LD 

OR 

RBT 

LD 

LD 

RET 


3 

Z.INITIALIZE 

l z 

<HL_BUFF) t HL 
GETJUND 


A,B 

A 

Z 

A,(DE) 
(DATA),A 


A,L 

HL f (HL BUFF) 
(HL),A 
HL 

(HL),0 

AF f AF # 

(DATA) f A 


;爽ん中の 8 ビツトをと 4 
;A=RANDOM NUMBER 


コタ x=HL 
A f 16 

B, H 

C, L 
HL,0 

HL f HL 

DB t HL 

HL.HL 

DE t HL 

NC f ML2 

HL V BC 


DW 

DW 


2 

3 

4 

5 

6 

7 

8 
9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 
21 
22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 


m = nXL — p 

i=((xoShrm) XOR x n - 2 )0R(x n -iShl m) 
: ((Xt-n + l shr m)0R(x t - n shl m))X0Rx t -i 

X t -p XOR X t -q 

乱数発生演算式 


0000 

0000 

E000 

E0O0 

EOO0 PE 03 
E002 28 08 
6004 FE 02 
E006 CO 
EO07 22 50 E0 
HOeA 18 08 
E0OC 
E00C 
E0OC 78 
BOOD B7 
B00E C8 
E0OF 1A 
E010 32 52 EO 
E013 C9 
E014 
E014 

B014 2A 52 EO 
E017 5D 
E018 54 
6019 CD 3B E0 
BO 1C 

E01C ED 5F 
K01E AC 
B01F AD 
B020 08 
E021 

B021 CB 3C 
E023 CB ID 
B025 CB 3C 
E027 CB ID 
E029 CB 3C 


純:なんか単純ですぬ。 

善:でも, a がもし0になったら,以降0 
の繰り返しになっちやうじやん。 

老:確かに。だから,得た乱数をそのまま 
次回の初期値とせず, Z 80 の場合ならリフ 
レッシュレジスタなんかと XOR などをと 
る!:よかろう。もっともそうするとさっき 
話した「乱数の再現性」というものがなく 
なるがな。 

Yo :リフレッシュレジスタって? 

光: RAM チップは一定期間ごとにメモリ 
を読み出して書き込んでやらないと記憶さ 
れた情報が消えてしまうんだ。まさにこの 
動作が「リフレッシュ」さ。もっともハー 
ドウエア的に行われるものだからューザー 
はまったく気にしなくていいんだけどね。 
で,リフレッシュレジスタはこのリフレッ 
シュ動作に使用するレジスタなんだよ〇ま 
あ,時間周期的にでたらめな値が入ってい 
ると考えてもいいんじやないかな。 

Yo :だったらそのまま乱数として使えそ 
うじやない? 

光:でも Z 80 のリフレッシュレジスタは7 
ビットなんだよ。それにそのまま乱数とし 
て用いるにはいまいちバラッキがよくない 
んだな。 

Yo :ふうん。 

老:では,次に「線形合同法 」 (Linear co 
ngruential method ) を紹介しようかのう 0 
善:…… SIGH 。 これまた難しい名前だな。 
老:何を言っとる。これは,そうじや,西 
川。おぬしが いつも 愛用して いる 「 Oh ! 
平方採中法 


ってどういう意味? 
善:やだね,公約数 
が1以外はないって 
いう意味だよ。 

Yo :ふ一ん? 


MZ 乱数ルーチン」もこのタイプのもの 
じやぞ〇 (リスト6 ) 

善:へぇ。 

老:それで,この方式も比較的単純な原理 
のわりにはそこそこの結果を得られるので 
広く用いられている。数式1を見てもらお 
うか。初期値 x を a 倍しこれに c を加える。 
これだけじや。 

Yo :小学生でもわかるわね。 

光:ただし,出来のいい乱数をこの式から 
作るにはある条件のもとで パラメータ a , 
c を定めなければならない。 

善:で,その条件つ 図1平方採中法 
て? 

光:話を L ビット2 
進数の乱数 ( L 2 2 
のとき)を求めるこ 
とに場合をかぎれば, 

1) c と2ムは互い 
に素である 

2) a は4の倍数に 
1を加えたものにす 
る 

とよい。 

Yo :(恥ずかしそう 
に)……あの1番め 
の条件の「互いに素」 


老: L ビット2進数以外の範囲の乱数を求 
める話はここでは省略しておこう。数学の 
苦手な人もおるようじやしな。 

Yo :ふん! 

善:いぬのふん,なんちて。ぽっくん。 

一 同:しり- つ . 〇 

善:(空気を悟ってすかさず…… ) と,と 
ころで長老あんまりいやみばっかいってる 
と,いい死に方しませんぜ……。 

老:わしはお前の墓参りをするまでは死な 
んぞ。 

M :まあまあまあ。 


a bits 



i 2乗して 


つ - 

1 du DII5 p 





• 3 hifc 1 


^ U : f#- k 


ゥ bits — 


a Dits 

r - 2 blts_ 1 

1 


数式1 線形合同法 

x n+ i = ax n + C 

• C と 2* •は互いに素 

• a は4の倍数に丨を加えたものにする 
数式2 M 系列法 

パラメータ p,q ( I < q < p ) 

n = p/L 割り切れないときは n = n +I 


リスト 1 


RRSRRR 


LDLDLDINCLDBXLDi HLDLDLDLDADDBXADDEXJRADDDBCJRg 


DA,F 
( B A 
— L H K R 丨 

hb.dk ahla hlhlh 

L R RLLL 
: D D D A Doox rrrrr 
DLLLC L X X B SRSRS 


X X X 

V—-<—V 

初期値演算 


マシン語カクテル in Z80’s Bar 131 































M 系歹岐 

老:(気を取り直して)3つめは 「 M 系列法」 
(Maximum length recurring sequence 
method ) というやつじゃ(数式2)。今度 
のはちと説明がややこしいぞ。さて,理論 
から説明するとすれば原始多項式やガロア 
体の話から始めないといけないんじゃが… 
…(ようこちゃんのほうをちらっと見て)。 


などがよく使われるパラメータじゃ。では 
いまから16ビット2進数の乱数を生成する 
場合を考えよう。このビット長を L = 16 と 
するぞ。さて, ( p , q ) は……。 

善:いちばん下の (89,38) でいこうよ。 

老:よし。まずパラメータ P をビット長 L 
で割る。 

M : p/L =89/16 
=5. 5625 

ですね。 


として,初期値の個数を n とする。 

( x 0 , X !, , Xn-i であることに注意) 

この n を L 倍したものから パラメータ p を 
引く。 

純:ええと,初期値の数は n 二6だから, 
nXL - p =6 xl 6-89 
= 7 

老:よろしい。で,その答えを ml : しよう。 
そして与えた初期値のうちの最後の x„_i 
を次の要領で計算しなおす。 



善:も,もう難しい話はたくさんだわ。 

Yo : 善ちゃん,人の声色で自分の意見を 
いわないでね。 

老:まあ,誌面のほうの都合もあるからな, 
ここでは具体的な話をするにとどめよう。 
詳しく知りたい人は「情報理論」の本やコ 
ンピュータのアルゴリズム辞典のような本 
に出ているはずじやから調べてみるとよか 
ろぅ。 

M :無馬太話が誌面を食いつぶしているとい 
う話が . 。 

老: M 系列法は2つのパラメータをまず用 
意する。仮に P , Q とするが,この2つの 
値は正の数で, 

1 < q < P 

ならばなんでもよい。ただ,バラつきのよ 
い乱数を出すのにいくつか経験的に知られ 
ている p , q の組み合わせがあるのだが, 
誰か知っておるかな? 

一同:し一ん。 

老: ( p , q ) = (521, 32) 

( p , q ) = (250,103) 

( p , q ) = (89’38) 

リスト S 線形合同法 


老:•この計算の答えの数だけ初期値を与え 
る。 

純:答えの数だけっていったって5.5625と, 
割り切れてないですけど。 

老:そのときは「繰り上げ」をするのじゃ。 
この場合では 5. 5625-> 6とする。割り切れ 
た場合はそのままでよいのじゃぞ。 

Yo : では,この場合は6つ初期値を用意 
するっていうわけね。 

M :で,この初期値はどうやって決めるん 
です? 

老:適当でいいんじゃ。ただし,全部0と 
かはだめじやぞ。 

善:何ビットの値を用意すればいいの? 

老:おお,忘れるとこじやった。求めよう 
としている乱数のビット数と同じビット数 
の数じゃ。いまの場合だと L =16でやって 
おるから16ビットじやな。 

善:て,いうことは0〜2 16 —1 ( 0〜6553 
5) の範囲の数を6つ用意してこれを初期 
値にする,と。 

老:そうじゃ。初期値を, 
x 0 , Xi, . , x 5 


x n _! = (( x 0 shr m)XOR x „_ 2 ) O 
R ( x n _i shl m ) 

いまの場合ではどうなるかな,西川君。 
善:はふ 。 n = 6 ,m = 7 でしよ,だから, 
x 5 = (( x 0 shr 7 )XOR x 4 ) OR ( x 5 
shl 7) 

だね。 

Yo :ええと。 「 XOR 」 や 「 OR 」 はわかる 
けど 「 shr 」「 shl 」 ってなあに? 

純:それはね,ビットシフトさ。 「 shr 」 は 
右シフト, 「 shl 」 は左シフトを意味する。 
上の 「Xo shr 7」は 「 x Q 」 (のビットパ 
ターンを)を右へ「7」ビットシフトする 
つてこと。 

M :ああ, 「 C 言語」の「くく」や「>>」 
と同じですね。 

善:あのう。 m = 〇になっちゃったときは 
どうするんです? 

初期値の数 n を求めるときの, 
n = p/L 

の計算で n が割り切れちゃう場合は, 
m = nXL—p 
は0になつちゃいますよ。 


0000 1; 練形合间法 (8 BITS ) E 028 30 


0000 




2 

; 





B028 

22 

4C 

HO 

31 

LD 

(LAST」 

細} ,HL 


E000 




3 

ORG 

0E00OH 




E02B 




32 





E0O0 




4 






E02B 

EB 



33 

EX 

DB,HL 


;DE=RANDOM NUMBER 

E 剛 

FE 

03 


5 

CP 

3 

••CASE PARAMETERS ARE 

STR 

DATA 

E02C 

2A 

46 

E0 

34 

LD 

HL,(HL 

•BUFF) 


E002 

28 

08 


6 

JR 

Z,INITIALIZE 




B02P 

73 



35 

LD 

(HL),E 



E004 

FE 

02 


7 

CP 

n 2 z 

;CASE PARAMETERS ARE 

INT 

DATA 

£030 

23 



36 

INC 

HL 



E006 

C0 



8 

BET 

;ERROR 



G031 

36 

00 


37 

LD 

(HL) r 0 


;"0" を" D" にかえれば 

E007 

22 

46 

B0 

9 

LD 

JR 

(HL BUFF),HL 

;K り « 



E033 

C9 



38 

RET 



; 16BITS^R が得られる 

E00A 

18 

0D 


10 

GKTJUND 




E034 




39 





KO0C 




11 






6034 




40 

KAKE: ; HL 拿 DE 

3 タエ:: HL 



B00C 




12 

INITIALIZE: 





E034 

3H 

10 


41 

LD 

A, 16 

B, H 

C, L 



E00C 

78 



13 

LD 

OR 

A»B 




B036 

44 



42 

LD 



H00D 

B7 



14 

A 




E037 

4D 



43 

LD 



EO0E 

C8 



15 

RET 

Z 

••CASE NO PARAMETERS 



B038 

21 

00 

00 

44 

LD 

HL,0 



E00F 

1A 



16 

LD 

LD 

A,(DE) 

;GET PARAMETERS FROM 

STR 

DATA 

B03B 




45 

HL1: 




B010 

32 

48 

B0 

17 

(PARAM A),A 




B03B 

29 



46 

ADD 

HL,HL 



E013 

13 



18 

INC 

DE 




B03C 

£B 



47 

EX 

DB f HL 



E014 

1A 



19 

LD 

LD 

A,(DB) 




B03D 

29 



48 

ADD 

HL f HL 



E015 

32 

4A 

B0 

20 

(PARAH^C),A 




E03E 

BB 



49 

EX 

JR 

DB f HL 



E018 

C9 



21 

RET 





B03F 

30 

01 


50 

NC.ML2 



E019 




22 






B041 

09 



51 

ADD 

HL.BC 



E019 




23 

GET RAND: 


; 実限にを得る 



B042 




52 

ML2: 




E019 

2A 

48 

B0 

24 

LD 

HL,(PARAM A) 




B042 

3D 



53 

DEC 

A 



E01C 

ED 

5B 

4C 

25 

LD 

DE,(LAST^RND) 




E043 

20 

F6 


54 

JR 

NZ.ML1 



K01F 

B0 









B045 

C9 



55 

RET 




£020 

CD 

34 

E0 

26 

CALL 

KAKE 

: HL=atXn-l 



E046 




56 





&023 




27 






E046 

ec 

00 


57 

HL BUFF: 

DW 

0 


H023 

ED 

5B 

4A 

28 

LD 

DE,(PABAH^C) 




H048 

00 

00 


58 

PARAM A: 

DW 

0 


B026 

E0 









E04A 

00 

00 


59 

PARAM C: 

DW 

0 


E027 

19 



29 

ADD 

HL r DE 

;HLsa*Xn~l+c 



B04C 

21 

85 


60 

LAST RND: 

DW 

8521H 

:初期値(適当でいい) 


132 Oh!X 1991.2. 










老:実はそのときは, 

x„_i = ((x 0 shr m)XOR x w _ 2 )OR 
(x„_i shl m) 

の計算はしなくていいのじゃ。と,いうの 
は,この計算は乱数周期を最大周期2 p — 
にするために,与えた初期値の足りないビ 
ツト数を補足するための計算なんじゃ,と 
いってもわけがわからんじゃろう力 ? 。 

善:あんたみたいな大学教授をどっかの大 
学で見たことがあるよ。 

Yo :あ,いるいる! 自分が頭のいいこ 
とを生徒に知らしめるがためにわけわかん 
ないこというやつ。 

M :……(ようこちゃんて結構口が悪い)。 
老:いずれ,おぬしらにもわかる日がくる 
じゃろう。 

純:(小声で)と,いやみにだめおしをす 
る長老……。 

老:なにかいったかな,純二君? ふん。 
まあ,いいわい。次に最初に与えた初期値 
をもとにさらに Xn - Xpy の初期値を次の 
要領で計算する。 

x t = (u^-n+i shr m)OR (x^_„ shl 
m))XOR x<_i (n^t^p —1) 

善:いまやっている例の場合だと, 

x«=((x^ 5 shr 7)OR(Xi_ 6 shl 7)) 
XOR Xf_i 

ですね。で,この漸化式で初期値を X 6 〜 
X 89 まで求めればいいわけね0 
M : すると,ずいぶん多くの初期値を必要 
とするんですね。じゃあ,先ほどのパラメー 
夕 p , q の組み合わせで(521, 32) というのが 
ありましたけれど,あの場合だと初期値を 
x 0 〜 x 521 も用意しなくてはならないんで 
すか。 

老:そのとおり。しかし,その場合だと乱 
数周期は2 521 —1,かなり周期の長い乱数 
が得られるな。 

Yo : いまやってる例でも周期は2 89 -1ね。 
これでも充分長い周期よね。 

善: さっきと同じく m =0 のときは上の計 
算はしなくていいの? 

老:いや , m = 〇のときは 「 shl 」 や 「sh 
rj を無視した, 

x f = (x«_„ + i OR x t - n )XOR x t .i 
(n^ t ^ P-1) 

を計算すればよい。 

純:で,初期値を用意して実際はどうやっ 
て乱数を得ればいいんです? 


老:次の漸化式 

x t = x t - p XOR x t - q ( p ^ t ) 

を順次計算し,その答えが乱数となる。 
m :やっと q という パラメータが 出てきた 
わけですね。 

純:ええといまやっている例の場合だと 
x t = x t s 9 XOR x f _38 (89^ t ) 

ですね。 

善:ほほう。この方式だと初めの計算量は 
多いけど,乱数を取り出すときは 「 XOR 」 

1回でいいのか。この方法は高速だから, 
ゲームなんかにや向いてるな。おや,ちよ 
っと待ってくれよ!この例の場合, t が 
128以上の場合はどうすんのよ。 

X < = Xj28-89 XOR X 128-38 
= X 89 XOR X 90 

となるけど初期値は 90 までしかないでしよ 
うが! 

老:はっはっは,愚かな。上の式はあくま 
で数学の漸化式で表現したものじや。実際 
のプログラムでは t — p,t — q は単なる初期 
値の位置を示すポインタじやから,得た 
を順次 t — p へ格納するようにして , t — 
p , t — q が P を超えるときはそれぞれを初期 
値のあるアドレスの先頭に戻してやればな 
んら問題はない。 

善:……。 

老:さて,ほかに乱数を求める方法には「逆 
関数法」,「棄却法」,「極座標法」などもあ 
る力 ? ,ま,今日はこのへんでやめておくか 
な。興味のある人は……。 

善:自分で調べよう,力、いい加減なもん 
だな。 

そして,数時間後 

善:できましたよ。リスト1が平方採中法, 
リスト2が線形合同法,リスト3と4が M 
系列法だよ。長老が説明したアルゴリズム 
のとおりプログラムしたから,特にプログ 
ラム自体の説明はしないよ.。各リスト,注 
釈文と本文をよく照らし合わせてみればわ 
かってもらえると思う。 

老:どれどれ。なるほど。平方採中法には 
リ フレッシュレジスタ を用いておるな。と 
いうことはリスト1で得られた乱数には再 
現性がないということじや。 

善:リスト1と2, 3は8ビット乱数が得ら 
れるんだ。リスト2のほうは一部を変更す 



ると16ビット乱数を得られるようになるよ。 
リスト4はリスト3を16ビットに拡張した 
ものだよ。 

Yo : あら,じゃあリスト1の平方採中法 
の16ビット版はないのね。 

善:だってさあ,もしそれをやるとしたら 
32ビットの乗算ルーチンを作らないといけ 
ないでしょ。そんなことするんならほかの 
方法を使ったほうがいいんじゃない? 

老:で,どれも, BASIC から使えるよう 
なプログラムになっていると見たが? 

善:ええ,そのとおり。 BASIC は XI の H 
uBASIC か Xlturbo の TurboBASIC のど 
ちらかを使う。同じ Z 80 のマシンへの移植 
は BASIC の USR 文の仕様さえ合わせれば 
かなり楽だと思うよ。 

リスト1は, 

A $ = USR ( CHR $( n )) 

のように n に初期値を入れて コールす ると, 
A = USR ( A ) 

で, A に〇〜255の乱数が入ってくる。こ 
のときの変数 A は「整数型」でないとだめ。 
リスト2は, 

A $= USR ( CHR $( a , c )) 

のように線形合同法の パラメータ a と c を 
受け渡したあと, 

A = USR ( A ) 

で A に〇〜255の乱数が入ってくる。リス 
卜後半に注釈があるけどそこを変更すれば 
16ビット,つまり0—65535の乱数が得ら 
れるようになるよ。 

リスト3は, 

A $= USR ( CHR $( p , q )) 

で M 系列法の 2 つのパラメータを受け渡し 
たあと, 

A = USR ( A ) 

で A に〇〜255の乱数が入ってくる。さっ 
マシン語カクテル in Z 80 ’s Bar 133 







sirriALizE 


BUFF) ,m. 
RAND 


;ERROR 

; m o m 


Z,TRASS 
A t (DE) 

(P) ,A 
DH 

A,(DE) 

(Q) ,A 

HL*SH0K1CHI 
DE,ESTBN 
BC, 40 


••CASE NO PARAMETERS 

;OET PARAMETERS FROM STR DATA 


B,A 

;B:P 

A 

;/2 

A 

;/4 

A 

;/8 

NC,MRAND0 

: VI 0 

A 

;W 0 

(N) ,A 

A,A 

A, A 

;SAVE 

A,A 

;*8 

B 


(M) ,A 

••SAVE 

A, (N) 

A 

E,A 

D t 0 

IX,ESTBN 

;A=N-: 


•1; MS : 列乱 W(KBITS) 

3 * OHG OPOOOH 


L,(IY+0) 
SHL L 
E,(IY^1) 
SHR E 
A,L 

(IX-1) 

(IX+O),A 

IX 

IY 


0000 

0000 

K 000 

E0OO 

H000 FE 03 
E002 28 09 
EO04 FE 02 
E0O6 C0 
F.007 22 OD El 
K00A C3 B5 E0 
H00O 
E0OD 
E0OD 78 
EO0E B7 
E0OK 28 09 
£011 1A 
E012 32 05 El 
E01513 
E0161A 
E017 32 06 El 
E01A 

E01A 21 0F El 
E01D 1135 El 
E020 0128 00 
E023 BD BO 
E025 

E025 3A 05 El 
B028 4? 

E029 CB 3F 
E02B CB 3F 
S02D CB 3F 
E02F 30 01 
E0313C 
E032 

E032 32 04 El 
E035 87 
E036 87 
E037 87 
B038 90 
B039 32 03 El 
B03C 

EC3C 3A 04 El 
E03F 3D 
E040 5F 
B04116 00 
E043 DD 2135 


;HL=Xn-l 

;BC=Xn-2 


;IF CASE M=0 THBN JUMP TO 
: Xn-1 shl m 


;X0 shr m 

;X0 XOR Xn-2 —> E 


;E OR Xn-1--> 


; B = 計算回数 

; 残こりの初期 M を計譯する 


E046 

E047 

E049 

E04C 

E04F 

E04F 

E052 

E053 

E055 

E055 

E058 

E058 

E05B 

E05C 

B05C 

E05F 

E05F 

E060 

E061 

B062 

E062 

B063 

G064 

E065 

B065 

E068 

E068 

E06A 

E06D 

E06E 

E071 

E072 

E075 

E076 

E077 

E077 

E07A 

E07D 

E080 

E083 

E084 

E085 

K088 

E08B 

E08D 


DD 19 
DD 6E 00 
DD 4E FF 


52 

53 


58 

69 


LD 

LD 

LD 

OR 

JR 

CALL 

LD 

LD 


DD 23 
FD 2135 


47 

FD 6E 00 
CD F8 E0 
FD 5E 01 
CD GD E0 
7D 
B3 

DD AE FF 
DD 77 00 
DD 23 
FD 23 


79 INIT2^LOOP: 


XOR 

LD 

INC 

INC 


きもいったけどリスト 4 はリスト 3 を16ビ 
ット拡張したもので,同じ使用方法で〇〜 
65535の乱数が得られる。 

どのルーチンもあらかじめ CLEAR &H 
E 000を実行してから LOADM でオブジェ 
タトを読み込んでおかないとダメだよ 。 D 
EFUSR 二 & HE 000 も実行しておかないと 
ダメ。 

と,まあ,こんな感じ。 BASIC からで 
なくて機械語のプログラムから呼んだりす 
るサブルーチンプログラムにするんならも 
うちょっと短くなるよね。 

老:いやあずいぶんと長いセリフじやった 
が,最後に,これらの乱数がどういったバ 
ラツキをするか視覚的に見てみようかの。 
一同:え,なにそれ〜っ。 

乱数検定モドキ 

老:乱数の検定にはいろいろあるがいちば 
ん簡単でかっ興味深い結果をえられる方法 
を紹介しよう。とても簡単じやからようこ 
ちゃんも大丈夫じゃよ。 

Yo :ふん! 

善:うまのふん。 

老:2次元座標系の片方の軸に得た乱数 X ハ 
もう片方の軸に1回前に得た乱数を 
とり点を打っていくんじゃ。西川の作って 
くれた乱数ルーチンをこの方法で見てみる 

U スト3 M 系列法 


とすればこんな感じかな(リスト5)〇 
このプログラムの使い方はまず,あらか 
じめ見てみたい乱数ルーチンを読み込んで 
おくことが前提じや。また,各乱数の発生 
法,ビット数を考慮してリスト5を変更し 
たら 「 RUNj してみなさい。 

Yo : あ,平方採中法や M 系列法はそうで 
もないけど,線形合同法は斜めの線が出て 
きたわね。 

老:これは得た乱数に規則性があるという 
証拠じや。リスト2中盤の, 

LD ( HL),E 
INC HL 
LD ( HL ),0 
の部分を, 

LD A,E 
XOR D 
LD ( HL),A 
INC HL 
LD ( HL ),0 

とするとかなりマシになるじやろう。 

Yo :あ,ほんとね。 

善:注釈にもあるけど 「LD ( HL ),0」 の 
部分を 「LD ( HL ), D 」 にすると16ビット 
乱数が得られるようになるよ。 

老:16ビットの場合だと変な小細工をしな 
くてもかなりバラツキのよいものになつと 
るようじやな。 


純:……あ, M 系列法 もパラメータの 選び 
方によっては変な「 V 」のような軌跡がで 
きてしまいますね。 

M :平方採中法は「リフレッシュレジスタ」 
を使用している分,結構いいバラツキのよ 
うです。 

老:この方法で BASIC 内蔵の乱数コマン 
ドやリスト6の 「 Oh ! MZ 乱数ルーチン」 
なども検定してみるよい。リスト6は線形 
合同法なのでリスト2同様斜め模様ができ 
てくるはずじや。リスト6は16ビットのも 
のになっとるがリスト2同様の変更で8ビ 
ットのものにもなるぞ。 

Yo :ところで光君は? 

善:あ,ここで眠っているよ。 

純:どおりで声がしな〈なったわけだ。 

光:ぶつぶつぶつ。 

M :おや,なんか寝言いってますよ。 

光:ようこちゃん……,むにゃ。 

Yo : あら,やだ。私の名前だわ(ぽっ)。 
光:……メアリー,くみこちゃん,ゆかり 
ちゃん,しずかちゃん,さゆりちゃん,ま 
りちゃん . 。 

純:なんか,かたっぱしから女性の名前を 
つぶやいてるぞ。まったく,この男は。 

Yo :ん,もう。 

善: JESUS ……,なんちゃって。オチが 
読まれたかな,へへへへ。バビンチョ。 

つづく 


ZDRRDD^DD D D D D D D R R R R N D D D D u D D H D D D 
ILOJLLILL LLLL ILSSSJI LAAASL L D L L L 


J 3444444 A 


)) N 
0 1 2 B 
♦ I T T 
Ex X ) I L s 
D I I M N IE 
»(( ( X L (A 
X » » I I H » I 
ILC A A z s AE 


kNp 

R E alax I ( A ( A 
H » » I » I X Y » » I , 
s ACE A E L ( II ABABB 


134 Oh! X 1991.2. 












SHR_E: 

SHR_LP: 

SHL^L : 

SHL LP : 


N 


DS 

DB 

DB 


Q 

XP : 

XMAX : DW 
HL_BUFF: 
SHOKICHI : 
DB 


143 LD 


DE f HL ; DE=RANDOM NUMBER 

HL,(HL_BUFF> 

AF.AF 1 

(HL),A 

HL 

(HL) # 0 


38 

0 

0 

0 

DW 0 

; 初期 «TABLE 逍当で _ いません (40« くらい> 
12,34,5,67,89,10,11,12,131,4 


151 , 6,17,18 • 19,20,212,22,3,24 


123,45,67,89,101 • 112,13,14 • 15,16 


171,81,92,21,222,32,45,99 


E,A 

A,D 


; X0 XOR Xn-2 • 


(IX+0),L 
(IXfl),H 

IX 

IX 

IY,ESTBN 

A,(N) 

B,A 

A, (P) 

B 

B, A 

L»(IY+0) 
H,(IY+1> 
SHL HL 
E,(IYf2) 
D ,( IY+3) 
SHR^DE 
OR 一 HL 一 DE 
-: 

E,(IX-2) 
XOR_HL_DE 

(1X40),L 
(IX+1),H 


;DE OR Xn-1—> HL 
;SAVE Xn-1 


; 残こりの初期 M を針 » する 


DE.ESTBN 
HL,0 
(XP),DE 


A, (Q 
B , A 


し , A 

H,0 
HL.HL 
HL,DE 
(XQ),HL 

A,(P> 

L,A 
H,0 
HL t HL 
HL.DE 
(XMAX),HL 


••各ポインタの計 B 
;XP:0 


;B=Q 
; A=P 
;A=P - Q 


; HL=A>2 

; ポインタ MAX の計 | 


; 実 W に乱数を得る 


E08F 

E091 

E091 

B094 

E097 

E09A 

B09B 

E09E 

E09F 

E0A2 

E0A3 

E0A4 

E0A6 

E0A7 

EOAA 

EOAA 

E0AD 

BOAE 

E0B0 

E0B1 

E0B4 

£0B5 

E0B5 

E0B5 

E0B8 

E0BB 

E0BC 

E0BC 

ECBD 

E0DE 

E0BE 

EOBF 

E0BP 

EOC0 

E0C1 

C0C2 

B0C5 

K0C6 

E0C6 

B0C7 

E0C8 

B0CA 

E0CB 

H0CC 

J50CE 

E0D1 

E0D1 

B0D4 

E0D4 

E0D5 

E0D6 

E0D8 

E0D9 

E0DA 

E0DC 

E0DF 


10 

E6 


90 

DJNZ 

INIT2_L00P 

EODF 

ED 

53 




91 



; 各ポインタの針 練 E0E2 

E1 


11 

35 

El 

92 

LD 

DE,ESTBN 

E0E3 

EB 


21 

00 

00 

93 

LD 

HL,0 

E0E4 

2A 

0D 

ED 

53 

07 

94 

LD 

(XP),DE 

; XP=0 E0B7 

08 


El 






B0E8 

77 


3A 

06 

El 

95 

LD 

A, (Q) 

E0E9 

23 


47 



96 

LD 

B r A 

; B=:Q E0EA 

36 

00 

3A 

05 

K1 

97 

LD 

A,(P) 

; A=P BOEC 

C9 


90 



98 

SUB 

B 

; A=P-Q EOED 



6F 



99 

LD 

LD 

L,A 

E0ED 



26 

00 


100 

H,0 

EOED 

3A 

03 

19 



101 

ADD 

HL,DE 

E0F0 

B7 


22 

09 

El 

102 

LD 

(XQ),HL 

E0F1 

C8 





103 



••ボインタ MAX の計* E0F2 



3A 

05 

El 

104 

LD 

A, (P) 

B0F2 

CB 

3B 

6F 



105 

LD 

L,A 

E0P4 

3D 


26 

00 


106 

LD 

H,0 

E0F5 

20 

FB 

19 



107 

ADD 

HL,DE 

E0F7 

C9 


22 

0B 

El 

108 

LD 

(XMAX),HL 

E0P8 



C9 



109 

RET 


K0F8 

3A 

03 




no 



B0FB 

B7 





111 

GET RAND : 


; 実限に乱数を得る E0FC 

C8 


2A 

07 

El 

112 

LD 

HL,(XP) 

EOFD 



ED 

5B 

09 

113 

LD 

DE,(XQ) 

E0FD 

CB 

25 

El 






E0FF 

3D 





114 



E100 

20 

FB 

1A 



115 

LD 

麟 (DE) 

•,乱 ft の計算 E102 

•,(これだけリ > B103 

C9 


AE 



116 

XOR 

(HL) 






117 



E103 

00 


77 



118 

LD 

(HL),A 

;得た乱数を E104 

00 





119 



;初期® TABLE にしまう E106 

59 


08 



120 

EX 

AF,AF* 

E106 

26 


23 



121 

INC 

HL 

D£ 

E107 

00 

00 

13 



122 

INC 

E109 

00 

00 

ED 

4B 

0B 

123 

LD 

BC t (XMAX) 

E10B 

00 

00 

El 



124 



E10D 

E10F 

00 

00 

7D 



125 

LD 

A,L 

E10F 

0C 

22 

B9 



126 

CP 

E1 12 

43 

59 

20 

07 


127 

JR 

NZ f SAVE HL 

E115 

0B 

0C 

7C 



128 

LD 

A,H 

B11B 

04 


B8 



129 

CP 

E119 

97 

06 

20 

03 


130 

JR 

NZ t SAVE HL 

E11C 

12 

13 

21 

35 

El 

131 

LD 

HL,ESTBN 

El1F 

D4 

16 




132 

SAVE HL : 


E122 

18 


22 

07 

B1 

133 

LD 

(XP),HL 

E123 

7B 

2D 




134 



E126 

59 

65 

7B 



135 

LD 

A y E 

E129 

0D 

0E 

B9 



136 

CP 

C 

E12C 

10 


20 

07 


137 

JR 

NZ.SAVE DE 

E12D 

AB 

51 

7A 



138 

LD 

A,D 

E130 

15 

DE 

B8 



139 

CP 

B 

E133 

2D 

63 

20 

03 


140 

JR 

NZ,SAVE DE 

E135 



11 

35 

El 

141 

LD 

DE,ESTBN 

E135 

00 

00 


M 系列法 IB ビット版 


0000 
0000 
E0O0 
EOO0 
E000 FE 
£002 28 
E0O4 FE 
E0O6 C0 
E007 22 
B00A C3 
E00D 
EO0D 
E00D 78 
G00E B7 
E00F 28 
E0111A 
£012 32 
E01513 
E0161A 
K017 32 
E01A 
E01A 21 
E01D 11 
E020 01 
E023 ED 
E025 
G026 3A 
E028 47 
H029 CB 
B02B CB 
E02D CB 
E02F CB 
E031 D2 
E034 3C 
E035 
E035 32 
E038 87 
8039 87 
E03A 87 
E03B 87 
E03C 90 
E03D 32 
EO40 
BO40 3A 
E043 3D 
E044 6F 
E045 26 
E047 29 
E048 BB 
E049 DD 
Ee4C El 
E04D DD 
EC4F DD 
刪 2 DD 
E055 DD 
EC58 DD 
605B 
E05B 3A 
E05H B7 
E05P 28 
E061 
E961 CD 
H064 
E064 ED 
E667 El 
H068 
E068 CD 


09 

5E El 


68 El 
BB El 
28 00 


12 INITIALIZE : 


14 

15 


20 

21 TRANS : 


LD 

LD 


*(16BITS) 
0E000H 
3 

Z,INITIALIZE 


Z,TRANS 
A,(DE) 

(P) ,A 
DB 

A,(DE) 

(Q) ,A 

HL,SHOKICHI 

DB,ESTBN 

BC,40 


LD 

LD 

SRL 

SRL 

SRL 

SRL 


A, {P) 

B, A 


35 MRANDO 

36 

37 


5C El 
5D El 


19 

6B 00 
66 01 
46 FF 
4E FE 

5C El 


4F B1 
5G B8 


62 

63 


LD 

ADD 

ADD 

ADD 

ADD 

SUB 


DEC 

LD 

LD 

ADD 


LD B,(IX-1) 

LD C,(IX-2) 

LD A,(M) 

OR A 

JR Z.INIT2 

CALL SHL^HL 

LD DB|(ESTBN) 

CALL SHR DE 


;ERROR 
; 展 0 « 


;CASE NO PARAMETERS 

;GET PARAMETERS FROM STR DATA 


/2 

/4 

/8 

/16 


j りきれた 
I 0 きれなかった 


♦16 
N*L-P 
SAVE M 


;H い : Xn-1 
; BC=Xn-2 


;IF CASE M=0 THEN JUMP TO 
; Xn-l shl m 


E06B 
B06B 7B 
E06C A9 
B06D 5F 
E06E 7A 
E06F A8 
E070 57 
E071 
E 071 CD 
E074 
B074 DD 
E077 DD 
E07A 
E07A DD 
B07C DD 
B07E FD 
E081 El 
E082 3A 
E085 47 
E086 3A 
E089 90 
E08A 47 
G08B 
B08B FD 
B08E FD 
E091 CD 
E094 FD 
E097 FD 
E09A CD 
B09D CD 
E0AO DD 
E0A3 DD 
E0A6 CD 
E0A9 
E0A9 DD 
B0AC DD 
EOAF DD 
E0B1 DD 
E0B3 FD 
E0B5 FD 
E0B710 
E0B9 
E0B911 
E0BC 21 
E0BF ED 
E0C2 El 
E0C3 3A 
EOC6 47 
E0C7 3A 
E0CA 90 
E0CB 6F 
E0CC 26 
E0CE 29 
HOCK 19 
E0D0 22 
B0D3 
E0D3 3A 
E0D6 6F 
E0D7 26 
H0D9 29 
E0DA 19 
E0DB 22 
E0DH C9 
EODF 
E0DF 
EODF DD 
E0E2 El 


75 00 
74 01 

23 

23 

21 B8 
5D El 
5B El 


6E 00 
66 01 
4F El 
5E 02 
56 03 
42 El 
3B B1 
56 FF 
5E FE 
34 El 

75 00 


B8 El 
00 00 
53 60 

5F El 
5E El 


62 El 
5E El 


X D X D N D E DRE REHE DRE 
E L E L I L R LOR SDJRLOR SDJR 


4567890123456789012345678901234567890 
4444445555555555666666666677777777778 
1111111111111111111111111111111111111 


L : L L L L 2 
R R L c c Bp L L L L ccc c N B DD DD T 
doddod a DD N N D DDDUDODDADDAADDA D D N N N N J D D D DDDUDDDDD DDDDDDE : D 
L X L L X L c L L I I L LLLSLOLLCLLCCLLC LL 丨 111 D LLL L し -: s ILA A L L L L A A L R D L 


8 8 8 


INI 

2345678901234567890123456789 


» 0123456789 
12222222222 


マシン語カクテル in Z 80 f s Bar 135 









HL BUFF: 
OLDRND : DW 
STEP : DW 


0000 

0000 

EO00 

E0O0 

E0OO 

EO02 

E0O4 

H006 

E0O7 

E00A 

E00C 

E0OC 

E00C 

E00D 

E0OE 

E0OF 

£010 

E011 

E012 

E013 

E014 

K 017 

£018 

B0I8 

E018 

£01B 

E01C 

E01F 


O h ! m Z U6BITS) 
ORG 0E000H 


(その昔マシン体操で出てきたもの) 


FE 03 
28 08 
FE 02 
CC 

22 3F E0 
18 0C 


9 LD 

10 JR 

11 

12 INITIALIZE : 


17 

18 
19 


LD 

LD 

INC 

LD 


24 GET^RAND : 

25 LD 


Z, INITIALIZE 


(HL^BUFF),HL 
GET_RAND 


A,(DE) 

L,A 

DE 

A,(DE) 

H,A 

(OLDRND),HL 


DE,(OLDRND) 
BC,(STEP) 


5CASE PARAMETERS ARE STR DATA 

;CASE PARAMETERS ARE INT DATA 
;ERROR 
; 戻り w 


••CASE NO PARAMETERS 

;GBT PARAMETERS FROM STR DATA 


; 実際に乱数を得る 


H020 

E023 

E026 

E026 

E027 

E02A 

E02B 

E02C 

E02D 

E02E 

E02E 

E02E 

E031 

E033 

E033 

£034 

E036 

E038 

E03A 

H03B 

E03B 

E03C 

E03E 

E03F 

E03F 

E041 

E043 


CD 2B E0 
22 41 E0 


21 00 00 
3E 10 


CB 23 
CB 12 
30 01 


20 F5 
C9 

00 00 
23 El 
83 03 


168 SAVELIY: 

169 LD 

170 EX 

171 LD 

172 LD 

173 INC 

174 LD 

175 RET 

176 

177 XOR HI し DE: 

178 LD 

179 XOR 

180 LD 

181 LD 

182 XOR 

183 LD 

184 RET 

185 OR HL DE: 

186 LD 

187 OR 

188 LD 

189 LD 

190 OR 

191 LD 

192 RET 


MULTI 

(OLDRND) # HL 
DE.HL 

HL,(HL^BUFF) 
(HL),E 
HL 

(HL) f D 


HL,0 
A,10H 

HL,HL 

E 

D 

NC,SKIP 

HL,BC 

A 

NZ,MLOOP 


DW 0 

0E123H 
899 


E,(IX+0) 
D,(IX+1) 
L,(IY+0) 
H,(IY+U 

XOR_HL』E 

(IX+0) f L 
(IX+1),H 


; 得た乱数を 
; 初期 《 TABLB に l 


0DDH 

A,L 


; ポインタ 1 処 a 


A,H 

NZ, 

IX, 


SAVE^IX 

ESTBN 


0FDH 

A,L 


; ボインタ 2 ft 理 


A,H 


NZ f SAVELIY 
IY f ESTBN 


DE,HL 

HL,(HL^BUFF) 

(HL),E 


; DB=RANDOM NUMBER 


L,A 

A,H 

H,A 


L,A 

A,H 

H. A 


E0E6 B1 
E0B7 

E0E7 DD 5E 00 
BOEA DD 56 01 
EOED FD 6E 00 
EOF0 FD 66 01 
E0F3 

E0F3 CD 34 El 
E0F6 

E0F6 DP 75 00 
E0F9 DD 74 01 
B0FC DD 23 
E0FE DD 23 
B100 FD 23 
E102 FD 23 
E104 BD 5B 64 
E107 B1 
E108 
El08 DD 
E109 7D 
B10A BB 
E10B 20 09 
B10D DD 
E10E 7C 
E10F BA 
B110 20 04 
£112 DO 21 B8 
BU5 B1 
E116 

El16 DD 22 60 
BU9 El 
B11A 
EllA FD 
E11B 7D 
B11C BB 
El ID 20 09 
E11F FD 
卫 m 7C 
B121 BA 
E122 20 04 
B124 FD 21 B8 
Em El 
H128 

E128 FD 22 62 
E12B El 
B12C EB 
E12D 2A 66 El 
E130 73 
E13123 
E132 72 
E133 C9 
H134 
E134 
E134 7D 
E135 AB 
E136 6F 
E137 7C 
H138 AA 
E139 67 
E13A C9 
B13B 
B13B 7D 
H13C B3 
B13D 6F 
E13E 7C 
EI3F B2 
E140 67 
E141 C9 


U スト 5 


10 DEFINT A-Z:CLS4:INIT:CLEAR &HE000:DEFUSR»&HE000 
28 'Example paraneters 


30 AS=USR(CHR$(99» 

40 , AS=USR(CHRS(49,11)) 

50 ’A$=USR(CHR$(39,11)) 

60 , A$=USR(CHR$(29,13)) 

70 , A$=USR(CHR$(&H12,&HE1)) 


’ 平方採中法 8BITS 
• 練形合同法 8BITS 
•M 系列 8BITS 
’H 系列 16BITS 
•Oh! 峰数 16BITS 


80 ’WINDOVK0,0)-(639,199) ,(-32768!,32768! )-(32768!,-32768!) 
90 HINDOW(0,0)-(639,199),(0,0)-(255,255) 

100 B:IIS_ 

118 LOOP 

120 A=USR(A) 

130 PSET(A,B,1):B=A 
140 GOTO120 


•16BITS 乱数の時 
’8BITS 乱数の時 


U スト6 オマケのサンプル 


乱数検定プログラム 


193 SHR DE : 

194 LD 

195 OR 

196 RKT 

197 SHR^LP : 

198 SRL 

199 RR 

200 DEC 

201 JR 

202 RET 

203 SHL HL 

204 LD 

205 OR 

206 HKT 

207 SHL_LP: 

208 

209 

210 
211 
212 

213 

214 M : 

215 N : 

216 P : 

217 Q : 

218 XP : D 1 

219 XQ: D1 

220 XMAX: D' 

221 HL^BUFF : 

222 SHOKICHI 

223 


SLA 

HL 


DS 


ぽ澦⑼ mm 2 


1718,1920,2122,2324, 12115,1 

541,565 ,123,1567,1865,1861 

123, 154,189, 10,112 ,5855,12345 

122 9 223,520 f 9999 ,229,19,542 


321,210,12,11,4 ,888 ,9 876,643 


AD X D D N D E D D DLLRD B R H 
CL K L LIL R LL A s R J A D J R 


E 一 


0 

3 


123456789012345 

333333333444444 


12345 6789012345 67 8901234567 
44444 4444555555 55 5566666666 
11111 1111111111 11 1111111111 


5C 


El 

A B 9c 
31 F 5 


5 4 9 
21 F 


F 2 5 0 2043 p 
D 0 E 0 D 0 0 0 1 

0000 4E4C6A912D650D0F 008732 1C086 000000000 
0000 0C0E0 40007040 BOD 30021000072 000000000 


000000000 

000000000 


A 7 8 BBD09 A 7 8 B B D o 9 00960000 2285674 FD2F7B0A09A0F0E10BO42 
3 B c CC 32 c 3BC CC 32 c 00620000 D050B 0121010700037 0 001400090 

2256779 BCBFF 2344689 BCCDEF 024688 BE147AD0369CF258AD0368BE14788BE147ADO 
4444444444445555555555555666666667777788888899999 aaaaaabbbbbbbcccccd 

eeebbebebeebeehebeebeeeebhehegbbbheeebebebbeeeeebebeeheeeeeeebeeeeee 


136 Oh! X 1991.2. 






•実数型コンパイラへの想い 

S - OS 上のコンパイラの歩みは Fuzzy BASIC 
コンパイラから始まりました(その前に magiF 
ORTH という変わり種はありましたが)〇 Fuzzy 
BASIC で作成したプログラムをマシン語に変換 
することが可能となったのです。このあと1988年 
1月号では FuzzyBASIC で書かれた FuzzyBASI 
C コンパイラさえ登場しています。 

S -0 S 上のコンパイラの主流は構造化コンパイ 
ラ言語 SLANG に引き継がれました。 C に似た文 
法を持つ SLANG はいまではすっかり S - OS 上の 
標準コンパイラとしての地位を確立した感があり 
ます。寄せられる投稿の多くが SLANG で書かれ 
ているということからも,人気の高さがうかがえ 
ます。 

SLANG は整数型コンパイラです。実数演算パ 
ッケージ SOROBAN 用のライブラリが追加され, 
実数を扱えるようになったとはいっても,「1.0+ 
2.0」を計算するのに,まず1と2を浮動小数点 
数に変換する I 対数を呼び出し,次に2つの数を足 
す関数を呼び出さなければならず,扱って扱えな 
くはないというレベルです0実数を直接扱えるコ 
ンパイラの登場が望まれるところです。 


第10梛 

ダイスゲーム K 旧 MET 


• ダイスゲーム KISMET 

一風変わったゲームが届きました0サイコロを 
5つ使ったダイスゲーム KISMET です。出たサ 
イコロの目によって役が決まり,役に応じた得点 
が入ります。役は全部で15種類で, BASIC セク 
シヨン と KISMET セクションの2つに分けられ 
ます。 BASIC セクションはサイコロの目を集計 
するもので,1の目だけを集計する ACES から6 
の目だけを集計する SIXES までの6種類 。 KIS 
MET セクションはポーカーの役によく似た役が 
9種類用意されています。ゲームはサイコロを15 
回振り,できた役の合計得点で争います。 

この ゲームの 面白いところは, サイコロを振っ 
て出た目を必ずなんらかの役にしなければならな 
いこと。そして,同じ役は ゲーム 中二度と使えな 
いことです。1 • 2 • 3 • 4 • 5と目が出たのに, 
すでに ストレート の役を使ってしまっているとき 
などは悲劇です。 ACES では (1 がひとつしかな 
いので)1点しか入りませんし, SIXES にして 
6 . 6 • 5 • 4 • 3なんて役が次に出た日には日 
も当てられません。どの役を割り振る力*,この選 
択が運命の別れ目となります。どうぞ悩み抜いて 
ください。 


I S M E T M 

- E ^r E Sr T d*_ 0 び - ル -? KiU 
0 — 0 — 0 * 


BASIC SECTION SCORE 1/// /// /// /// 
ACES 
DEUCES 
TREVS 
FOURS 

5FIVES … 

KISMET SECTION SCORE /// /// /// /// 

FLASH 

⑽ R 

tS^Rcore i///}///!///I///i 

0 -———— 


籲 S-OS の系譜 (18) 

S - OS は金機種共通の BIOS (Basic Input Out 
put System ) + マシン 語モニタという体裁でスタ 
ートしました。 X 68000 でいうならば BIOS は IOC 
S , マシン 語モニタはデバッガといったところで 
しよう 力、 ただ, マシン 語モニタにはプログラム 
をデバッグする機能はなく, マシン 語プログラム 
の入力,ロード/セーブなど限られた機能が与え 
られていたにすぎません。 

それを最もよく表しているのがプログラムの実 
行方法です。マシン語プログラムは,まずプログ 
ラムをメモリに読み込み,それからスタート#地 
にジャンプするという方法で実行されました 。 S 
- OS のモニタはマシン語プログラムをロードす 
るアドレスを自分で指定できるようになっていま 
す。 Z 80 のマシン語プログラムながらリロケータ 
ブルに作られた MACINTO - S は,この機能を利 
月 J してユーザーが自分の好きなアドレスで実行で 
きるようになっていました。 

“ SWORD ” になってディスクを扱えるように 
なっても,この部分は荧わりませんでした。シエ 
ルではなくモニタなんだという信念が開発者にあ 
ったからです。ただ,これでは少々使いづらいの 
ではないか,という提言もあり,1986年10月号で 
RUN コマン ドが追加されたのはこの コーナーで 
すでに紹介したとぉりです。 

そして1987年5月号では, FuzzyBASIC の作 
者である瀧山氏によりさらなる拡張が施されまし 
た c RUN コマンドは プログラムのロード. ジャ 
ンプをひとつの命令で行うものでした力 ? ,さらに 
パラメータを プログラムに渡すことができるよう 
に改良されたのです 。 RUN コマンドはコマンド 
ライン先頭に R を入力していました力 f , これはス 
ペースに変更されました。この改造によってプロ 
グラムの実行は,プログラム名だけを入力する, 
CP / M や Human のような方法になったわけです。 
同時に RAM ディスクもサポートされ,これまで 
テープでイライラしながら起® J を 待っていたプロ 
グラムの高速起® J が実现されました。 

THE SENTINEL 137 


SENTINEL 










全機種共通 S-OS“SWORD ” 要 



ダィスゲ - ム kismet 

サイコロを使ったポーカーといろ風合いのゲーム, KISMET で 
す。ちなみに KISMET の意味は「幸運」。でも高得点を狙うに 
Sakaki Takuya はかなりテクニックも必要とされるみたいですね。このゲームを 

榊卓也 実行するには SLANG が必要です。 


ゲー厶の® 


SLANG コンパイラを使ったダイスゲー 
ムです。5個のサイコロを振って15の役を 
作り,総得点を競うゲームです0あまり知 
S れていないゲームですので,最初に概要 
を説明 t ておきましょう。 

サイコロ を使用します。普通のサイコロ 
で, yr きなくはな し 、のですが,この ゲーム 
で使うサイコロは目が3色で塗り分けられ 
ています。1, 6が青,2,5が赤,3, 

4が緑です。ゲームは1〜4人で行います0 
まず, 6 名前を登録し,最初の人からこのよ 
うなサイコロを5個同時に振り,出た目の 
組み合わせによって役(ポーカーに似てい 
る)を決めて i 、 〈のです。 

今间はこれで目的の役が完成していれば 
スペース キーを押して役の登録を行います0 
プレイヤーは役ができていなかった場合 
ゃもっと違う役を狙いたい場合はそのうち 
の2個のサイコロを振り直してもかまいま 
せん(というより,第1投の出目を見て役 
を狙うのですが)。振り直すときは A,D 
キーまたはテンキーの4,6でサイコロを 
選び,リターンキーを押します。 

こうして15回役を作ります。といっても 
ひたす4高い役を目指すのがゲームの目的 
ではありません。 KISMET に存在する役 
は?5種類。これらをひとっずっ作っていく 
のです。サイコロによってできた目はプレ 
イヤーが評価して,どの役を狙ったものか 


をす旨定します。15回の試行はどれもなんら 
かの役に割り当てられなければなりません。 
うま〈役ができなかったときは,どれかの 
役をつぶさなくてはいけないのです。どの 
役をどの時点でつぶすかがこのゲームの決 
め手になってきます。こうして成立した役 
から得点を合計して勝負が決まるわけです。 


役の内容 


役は大きく分けて BASIC セクションと 
KISMET セクションの2種類があります。 

1) BASIC セクション 

ACES から SIXES まであり,その数字 
の サイ コロの 目のみ得点となります。 

得点=その役のサイコロの目 x 個数 
となります。つまり, 

1, 2,1, 5,1 

という目を “ ACES ” として登録するのな 
らなら得点は3となります。 

2) KISMET セ クション 

基本的なところはポーカーの役とよ〈似 
ています。ただ,サイコロの目の色によっ 
て成立する役があります。得点は, 

得点=目の総和+ボーナス 
というのが基本となっています。 

では役を解説しましょう。 

• TWO PAIR SAME CO し OR 

同じ色同士のツーペアです。残り1個の 
目はなんでもかまいません。 

• THREE OF A KIND 

いわゆるスリーカードです。3個の目が 


同じなら残りはなんでもかまいません。 

• STRAIGHT 

いわゆるストレートです。5個の目が続 
き番号になっていなければなりません。 

籲 FLUSH 

いわゆるフラッシュです。同じ色だけで 
できた手です。 

春 FU しし HOUSE 

いわゆるフルハウスです0 

• FU しし HOUSE SAME CO し OR 

フルハウスの うち,カードがすべて同じ 
色の場合です。 

• FOUR OF A KIND 

いわゆるフォーカードです。 

•YARBOROUGH 

これはなんでも点になります。目の総和 
が高いときにでも指定してください。 

• KISMET 

いわゆるファイブカード。すべてのサイ 
コロの目が同じ場合です。 

これらの役を見てわかるように上位の役 
は下位の役の代わりになります。たとえば, 
1 , 1 , 1 , 6,6 

のような FULLHOUSE SAME COLOR 
は , TWO PAIR SAME COLOR,THRE 
E OF A KIND , FLUSH , FULLHOUSE , 
YARBOROUGH , ACES , SIXES のいず 
れのように指定しても有効となります。 
KISMET セクションの得点は, 

TWO OF A KIND 合計 

THREE OF A KIND 合計 

STRAIGHT 30 




FLUSH 

35 

FULLHOUSE 

合計 +15 

FULLHOUSE SAME COLOR 

合計 + 20 

FOR OF A KIND 

合計 +25 

YARBOROUGH 

合計 

KISMET 

合計+50 


となります。 

BASIC セクシヨンでは各々の数字の合 
計しか得点になりませんが,集計のときに 
この部分の合計が63点以上なら35点,71点 


138 Oh! X 1991.2. 




























以上なら 55 点の,79点以上なら75点のボー 
ナスがつきます。 


生意 


SLANG を使つている方ならコンパイル 
作業は特に説明の必要はないでしょう 。 S 
LANG を立ち上げてそのまま, 


]CKISMET 

のように入力してください。なお, MZ - 
2500や Xlturbo の方は忘れずに25行モー 
ドにしてから実行してください。 

キー操作は カーソル 移動に カーソルキー, 
テンキー, “ W , X , A , D ” を使用します。 

なお,高得点をあげるためには KISME 
T セクションにばかり点を集中せずに , B 


ASIC セクションで平均3個以上の得点を 
記録してボーナスを狙う必要が出てきます。 

ホ* 氺 

色が出ないと寂しいので当初は MAGIC 
を使うつもりでしたが動かなくなる機種が 
多いのでやめました。同じ色の目には同じ 
キャラクタを使っているのでなんとかわ 
かってもらえるのではないでしようか。 


U スト 1 


1 

/» t/ 

103 




2 

/專 KISMET XI .SL 零/ 

104 

DICE 

PRT() 


3 

/* «/ 

105 

VAR I; 


4 

/* for S-OS SLANG COMPILER */ 

106 

BEGIN 


5 

ft ver . 1.01 *90.08.21 家/ 

107 


FOR 1=0 TO 4 i 


6 

/* T.SAKAKI & M.NAQIRA */ 

108 


DICE SUBUJO+m, 

,1); 

7 

/* " 

109 


J 


8 


110 

END; 


10 

ARRAY BYTE DICK[4]=[l,1 f 1,1,1]; 

112 




11 

ARRAY SC[3】【14】; 

113 

DICE 一 

SUB(I,X,Y) 


12 


114 

BEGIN 


13 

VAR PS MAX=3 f PS=0 f YK=O; 

115 


CASH DICEJI] OF [ 


14 

VAR HOLD=0; 

116 


1: 1 


15 


117 


1% COLOR(1); 拿/ 


16 

CONST NONSELECT=851; 

118 


LOCATE(X t Y); 

PRINT ( H 

17 

CONST BUFF=$E00O; 

119 


LOCATE(X,Y+U ; 

PRINT( M t ); 

18 

CONST COLORF=$0026; 

120 


LOCATE(X,Y + 2); 

PRINT(" H ); 

19 


121 


] 


20 


122 


2 : [ 


21 

CAST DICE() 

123 


/t COLOR ⑴; 本/ 


22 

VAR I; 

124 


し OCATE(X.Y); 

PRINT (,•曾"); 

23 

BEGIN 

125 


LOCATE(X,Y+l>; 

PRINT (” "); 

24 

FOR 1=0 TO 4 [ 

126 


LOCATE(X,Y42); 

PRINT( M ぎ.}; 

25 

IF BIT(HOLD f I) == FALSE 

127 


] 


26 

27 

DICB[I)=RND(6)+1; 

] 

128 

129 


,拿' ; 拿/ 


28 

DICK PRT(); 

130 


LOCATE(X,Y); 

PRINT("O *); 

29 

END; 

131 


LOCATE(X,Y+U ; 

PRINT ( •,〇 .い; 

30 


132 


LOCATE(X,Y+2); 

PRINT( M O u ); 

31 


133 


] 


32 

CA8T() 

134 


4 : [ 


33 

VAR I,KEY; 

135 


/< COLOR(4); */ 


34 

BEGIN 

136 


LOCATE(X.Y); 

PRINT(°0 0 M ); 

35 

IF HOLD == 000111 UB 

137 


LOCATE(X,Y+l>; 

PRINT (•’ M ); 

36 

EXIT; 

138 


LOCATE(X,Y + 2}: 

PRINT (”0 0 M ); 

37 

REPEAT [ 

139 


] 


38 

KBUF CLR(); 

140 


5 : [ 


39 

WAIT(5); 

141 


/* COLOR(2); */ 


40 

CAST DICB(); 

142 


LOCATE(X,Y); 

PRINT( M ® «•); 

41 

IF (KEY=INKEY(0)) == $1B ft GETKEY t! 

143 


LOCATE(X,Y+1) : 

PRINT (” ® 

42 

STOP(); 

144 


LOCATE(X,Y+2) : 

PRINT( ; 

43 

J UNTIL KEY == • 1 ; 

145 


] 


44 

KBUF CLR(); 

146 


6 : t 


45 

FOR 1=0 TO 2 [ 

147 


/* COLOR(1); 拿/ 


46 

WAIT<7 + I 拿 7 >; 

148 


LOCATE(X,Y); 

PRINT ("本尊“); 

47 

CAST DICE(); 

149 


LOCATE(X,Y+l); 

PRINT (••零本”); 

48 

] 

150 


LOCATE(X,Y+2); 

PRINTr. 拿 * n ); 

49 

END; 

151 


] 


50 


152 


] 


51 


153 

/* 

COLOR ⑺; */ 


52 

HOLD OR CAST() 

154 

END; 


53 

VAR I f J,X,Y f XO,IO; 

155 




54 

BEGIN 

156 




55 

HOLD=000U111B; 

157 

HOLD 一 

CUR(I t X f Y) 


56 

1=0; 10=0; 

158 

BEGIN 


57 

XO=20; Y=1; 

159 


CASE I OF ( 


58 

KBUF CLR(); 

160 


0 : 【 


59 

WHILE TRUE l 

161 


LOCATE(X.Y); 

PRINT( M "}; 

60 

X=I 拿 4+20; 

162 


LOCATE(X t Y+l) : 

PRINT《” 

61 

IF BIT(HOLD,IO) == TRUK [ 

163 


LOCATE(X,Y+2); 

PRINT( " ••}; 

62 

DICE SUB(IO,XO f Y); 

164 


J 


63 

】 ELSE 『 

165 


1: ( 


64 

HOLD_CUR(0,XO t Y); 

166 


LOCATE(X,Y>; 

PRINTr ? *'); 

65 

) ENDIF; 

167 


LOCATE(X,Y+l); 

PRINK M ? ?••>; 

66 

WAIT(10); 

168 


LOCATE<X,Y+2> ; 

PRINT (”? H ); 

67 

HOLD CUR(l,X f Y); 

169 


] 


68 

WAIT(10) : 

170 


] 


69 

XO=X; IO=I; 

171 

END; 


70 

CASE INKBY(0) OF 【 /t GETKEY t/ 

172 




71 

• 1 •• l 

173 




72 

DICE^PRT(); 

174 

MAIN() 


73 

EXIT; 

175 

VAR TURN; 


74 

1 

176 

BEGIN 


75 


177 


WHILE TRUE [ 


76 

IF I == 0 1=4; 

178 


INITO; 


77 

ELSE —I; 

179 


TITLE(); 


78 

1 

180 


INTGET(); 


79 

, 6 > f f D , :[ 

181 




80 

IF I == 4 1=0; 

182 


REPEAT [ 


81 

ELSE ++1; 

183 


INIT SC(); 


82 

J 

184 


BG PRT(); 

HIT SPC(); 


83 

$0D, , 5 , t , S , : [ 

185 



84 

IF BIT(HOLD,I) == FALSE [ 

186 


FOR TURN=1 TO15 [ 

85 

HOLD=SBT(HOLD p I); 

187 


FOR PS=0 TO 

PS_MAX [ 

86 

】 ELSE [ 

188 


HOLD=0; 


87 

HOLD=RESET(HOLD,I); 

189 


NAME(); 


88 

)ENDIF; 

190 


LOCATE(24+PSt4,5); 

89 

KBUF CLR(); 

191 


PRINTS 

••家.,); 

90 

] 

192 


CAST(); 


91 

$1B : STOPO; 

193 


HOLD^OR CAST( ) ; 

92 

•G,: l 

194 


CAST( ) ; 


93 

HOLD=0; 

FOR J=0 TO 4 l 

195 


LOCATE(l f 

2); 

94 

196 


PRINT( 

•• CAST ONCE M< 

95 

HOLD CUR(0 f Jt4«*-20,Y) ; 

197 


HOLD OR CAST( ); 

96 

] 

198 


CAST( ) ; 


97 

] 

199 


IF TURN ! 

= 15 【 

98 

] 

200 


SELECT ㈠; 

99 

KEY WAIT( J ; 

201 


】 ELSE l 


100 

] 

202 


LAST1 (); 

101 

END; 

203 


HIT SPC( ); 

102 


204 


1 ENDIF; 



KISMET 139 























140 


205 

LOCATE<24+PS 拿 4,5> 


331 

LOCATE(0,0) 


206 

PRINT < PS+U ; 


332 

PRINTT* 

“KISMET "”); 

207 

1 


333 

LOCATE(0,4) 


208 

] 


334 

PRINT (” 

BY M.N.&T.S.tt "); 

209 



335 

LOCATE(0,6) 


210 

TOTALU ; 


336 

PRINT( M 

BASIC SECTION SCORB¥N M ); 

211 

]UNTIL REPLAYO ; 


337 

PRINT( •, 

ACKSYN M ); 

212 

1 


338 

PRINK " 

DBUCESVN M ); 

213 

END ; 


339 

PRINT( M 

TREYSVN "); 

214 



340 

PRINTT 

FOURS¥N”>; 

215 



341 

PRINT(" 

FIVESVN M ); 

216 

KBUF CLR() 


342 

PRINT( M 

SIXBSYN 1 *); 

217 

BEGIN 


343 

PRINT(" 

KISMET SECTION SCORE¥N u ); 

218 

WHILE INKEY(0) != 0 [ /拿 

GBTKEY t/ 

344 

PRINT( M 

TWO PAIR SAMECOLORYN 0 ); 

219 

J 


345 

PRINTr 

THREE OF A KIND¥N">; 

220 

END ; 


346 

PRINT( •• 

STRAIGHT¥N H ); 

221 



347 

PRINT(" 

FLASHVN * 1 ); 

222 



348 

PRINT( U 

FULLHOUSEVN 11 ); 

223 

WAIT ⑴ 


349 

PRINT (” 

FULLHOUSE SAMECOLORYN "); 

224 

VAR WT.KBY ; 


350 

print r. 

FOUR OF A KINDVN M ); 

225 

BEGIN 


351 

PRINTC 1 

YARBOROUGH¥N M ) ; 

226 

WT=100 ; 


352 

PRINT(" 

KISMET¥N">; 

227 

I=ItWT ; 


353 

PRINK M 

TOTAL SCORE"); 

228 

WHILE I— != 0 l 


354 



229 

IF (KEY=INKEY(0)) != 0 [ 

/拿 GETKEY 拿 / 

355 

BOX PRT(0,1 

•18,3 ); 

230 

1 = 0 ; 


356 

FOR 1=0 TO 

4 [ 

231 

1 ENDIF ; 


357 

BOX PBT(19+1*4,0,23+1*4,4 ); 

232 

] 


358 

J 


233 

END(KEY ); 


369 

BOX PRT(1,5 

,22,24 ); 

234 



360 

FOR 1=0 TO 

3 [ 

235 



361 

BOX PRT(22+I*4,5,26+I*4,24 ); 

236 

SELECT() 


362 

LOCATB( 23+1*4, 6 ); PRINT( _•///”> ; 

237 

VAR Y,YO,KEY,YKO; 


363 

LOCATB(23+1*4,13 ); PRINT("///">; 

LOCATE(23+1*4,23) ; PRINT("/// H )! 

238 

BBOIN 


364 

239 

YK=0 ; YK0=14: 

Y=7 ; YO=22 ; 


365 

1 


240 


366 

FOR 1=0 TO PS MAX [ 

241 

WHILE TRUE [ 


367 

L0CATE(244I«4,5 ); PRINT(I+1 ); 

242 

LOCATE(1,2 ); 


368 

] 


243 

PRINT( M • S E L B C T t 


369 




244 

245 

246 

247 

248 

249 

250 

251 

252 

253 

254 

255 

256 

257 

258 

259 

260 
261 
262 

263 

264 

265 

266 

267 

268 

269 

270 

271 

272 


IF Y 


YO 


LOCATE!2,YO ); PHINT( M 
IF SC(PS][YKO] == NONSELECT 【 

L0CATE(23^PSI4,Y0) ; PRINT{ M > 
J ENDIF; 

IF SC[FS)[YK] == NONSELECT [ 
LOCATE(2 f Y) ; PRINT< ; 

LOCATED 23 + PSM, Y > ; PRINT( > 

]ELSE [ 

LOCATE(2,Y) ; PRINT( 

】 ENDIF ; 

YO=Y ; YKO=YK ; 

J ENDIF ; 

KEY=INKBY(0 ); /t GBTKEY t/ 

KEY_WAIT (); 

CASE KEY OF [ 

SOD : ( 

IF SCIPSHYK 】 ==NONSELECT 【 
JUDGE (); 

LOCATE(23 + PS 拿 4 ,Y) •• 

PRINT(FORM$(SC(PS][YKK3)) 
LOCATE(2 t Y) ; PRINT( M ••); 

IF HIT 一 SPC(> == , C , [ 
LOCATE(23+PS«4 f Y ); 

PRINT< ; 

LOCATE(2 ,Y ); 

PRINTr>..> ; 

SCIPSHYKJ :: NONSELECT; 

]ELSE [ 


DICB^PRT (); 
END : 


FOR I=Y+1 TO YE-1 
LOCATE(X 9 l)\ 
LOCATE(XE.I ); 

1 


370 

371 

372 

373 

374 BOX^PRT(X t Y,XE,YE) 

375 VAR I ; 

376 BEGIN 

377 LOCATE(X f Y ); PRINT(“0">; 

378 FOR I=X+1 TO XE-1[PRINT( M - H ) 

379 LOCATE(XE,Y) : PRINT<"0”>; 

380 

381 

382 LOCATE(X ,1 》; PRINT("I 

383 LOCATE(XE,1 ); PRINT に TM ; 

384 

385 

386 

387 

388 

389 END ; 

390 

391 

392 SN 一 CHK ⑴ 

393 VAR J,K ; 

394 BEGIN 

396 KS r j=0 TO 4 [ 

397 IF DICE(J] == DICE[I) 

398 ++K 


LOCATE(X ,YE) : PRINK "0 "); 
FOR I=X+1 TO XE-1[PRINTC' 
LOCATE(XE.YE) ; PRINTT'O "); 


273 

EXIT FROM FUNC ; 

399 

]ENDIF ; 

274 

)ENDIF ; 

400 

1 

275 

]ENDIF ; 

401 

BND(K ); 

276 

1 

402 


277 

, 2 ,, T : 【 

403 


278 

IF Y ==12 [ 

404 

SC NUM(I) 

279 

Y=14 ; YK=6 ; 

405 

VAR J , K; 

280 

]BF Y == 22 [ 

406 

BEGIN 

281 

Y=7; YK=0 ; 

407 

K=0 ; 

282 

)ELSE 【 

408 

FOR J=0 TO 4 [ 

283 

♦ ♦Y; +4-YK ; 

409 

IF DICE[J] 5= DICB[1]( 

284 

)ENDIF ; 

410 

++K; 

285 

] 

411 

J EF 《DICEIJJ ♦ DICBII]) == 7 

286 

, 8 •• ,い : l 

412 

♦ ♦K; 

287 

IF Y ==14 [ 

413 

J ENDIF ; 

288 

Y=12 ; YK=5 ; 

414 

1 

289 

)BF Y 7 [ 

415 

END(K ); 

290 

Y=22 ; YK=14 ; 

416 


291 

】 ELSE 【 

417 


292 

--Y ; --YK; 

418 

ALL SUM() 

293 

]ENDIF ; 

419 

VAR I,SUM ; 

294 

J 

420 

BEGIN 

295 

$1B : STOP い; 

421 

SUM=0 ; 

296 

] 

422 

FOR 1=0 TO 4 { 

297 

] 

423 

SUM=SUM+DICE[IJ ; 

298 

END ; 

424 

] 

299 


425 

END(SUM) : 

300 


426 


301 

INIT SC() 

427 


302 

VAR I,J ; 

428 

JUDGE() 

303 

BEGIN 

429 

VAR I,J; 

304 

PRINT ( ,, ¥C M ); 

430 

BEGIN 

305 

FOR 1=0 TO PS MAX I 

431 

SCIPS 丨 【 YK 】 =0; 

306 

FOR J=0 TO14 [ 

432 


307 

SC[I)[J)=NONSELBCT ; 

433 

CASE YK OF 【 

308 

] 

434 

00 TO 05 : I 1% BASIC SEC 

FOR 1=0 TO 4 l 

309 

J 

435 

310 

END; 

436 

IF DICE1IJ == YK+1{ 

311 


437 

SC[PS][YK]=SCIPS][YK] 

312 


438 

]ENDIF ; 

313 

KEY WAIT() 

439 

] 

314 

VAR I,J,K WT1,K WT2 ; 

440 

06 : 【 /拿 TWO PAIR J 

315 

BEGIN 

441 

316 

K WTU1500 ; 

442 

SORTO ; 

317 

K WT2=1500 ; 

443 

CASK SC NUM(1) OF l 

318 

FOR 1=0 TO K WT1 【 

444 

01 TO 03 : EXIT; 

319 

IF INKBY(0) == 0 [ /t GBTKBY 拿 / 

FOR J=0 TO K WT2 [ 

1 

445 

04 : [ 

320 

321 

446 

447 

IF SN CHK ⑴ ==1 【 
BXIT ; 

322 

EXIT FROM FUNC ; 

448 

】 EF SN CHK ⑴ == 3 [ 

323 

】 ENDIF; 

449 

BXIT ; 

324 

J 

450 

]ENDIF ; 

325 

END; 

451 

SCtPSltYKl^ALl SUM() ; 

326 

452 

J 

327 


453 

05 : l 

328 

BG PRT() 

454 

SCIP8] 【 YK】::ALL SUM() ; 

329 

VAR I ; 

455 

) 

330 

BEGIN 

456 

J 


Oh! X 1991.2. 


►マシン語カクテルを M るとペンギン,艰脳倶楽部では犬,という西川さんの正体は(音 
楽が彳か2:そうなので),昔テ レ ビの コマーシャルで出ていたへッ ド ホンをつけていたサルで 
しょ? あ, ぉこらないで。 水|つ啮雄 (21)40; ■:邡 









457 

] 

583 

IF (KBY=INKBY(0)) == $1B 1% GBTKBY 拿 / 

458 

07 : [ ft THREE OF A KIND 拿 / 

584 

STOP (); 

459 

SORT (); 

585 

]UNTIL (KEY == , M OR (KEY == , C,}; 

460 

IF SN CHK(2) >= 3 [ 

586 

BND(KBY ); 

461 

SC[PS][YK]=ALL SUM (); 

587 


462 

J BNDIF ; 

588 


463 

1 

589 

HIT_ANY(X f Y> 

464 

08 : l ft STRAIGHT </ 

590 

VAR KEY; 

465 

SORTO ; 

591 

BEGIN 

466 

J=1 ; 

592 

REPEAT [ 

467 

FOR 1=0 TO 3 [ 

593 

KBUF CLR( ) •• 

468 

J=J$(DICEII+1]-DICEtI )); 

594 

LOCATK(X,Y>; PRINT(" HIT ANY KEY ! ! ,”; 

469 

1 

595 

LOCATE(X,Y>; PRINT(SPC$(17 )); 

IF (KEY=INKEY(0)) == $1B ft GETKEY */ 

470 

IF J 1[ 

596 

471 

SC[PS][YK]=30; 

597 

STOP (); 

472 

J ENDIF ; 

598 

】 UNTIL KEY != $00 ; 

473 

1 

599 

END ; 

474 

09 : I /% FLASH 拿 / 

600 


475 

IF SC NUM(0) == 5 【 

601 


476 

SCtPSJ[YKJ=35 ; 

602 

REPLAY() 

477 

]BNDIF ; 

603 

VAR I ; 

478 

1 

604 

BEGIN 

479 

16 【 1% FULLHOUSE %/ 

605 

LOCATE( 1,2 ); PRINT(•• REPLAY(Y/N)? ••); 

480 

SORTO ; 

I=SN CHK(0 >; 

606 

KBUF CLR (); 

481 

607 

LOCATE(15,2 ); 

482 

J=SN CHK(4 ); 

608 

WHILE TRUE l 

483 

IF (ItJ) r= 6 [ 

609 

CASE INKEY ⑴ OF [ 

484 

SC 【 PS 】 [YK】=ALL SUM( )4-15 ; 

610 

•Y ••,,,拿 0D :[ 

485 

】 EF I =:: 5 【 

611 

I=FALSE ; EXIT ; 

486 

SC[PS][YK)=ALL SUM()+15 ; 

612 

»N f : [ 

487 

]ENDIF ; 

613 

488 

] 

614 

I=TRUE ; EXIT; 

489 

11 : l 1% FULLHOUSE SAHBCOLOR 拿 / 

615 

$1B : STOP (); 

490 

SORT (); 

616 

491 

IF SC NUM(0) != 5 [ 

617 

] 

492 

EXIT ; 

618 

) 

493 

]BNDIF ; 

619 

END(I ); 

494 

I=SN CHK(e ); 

620 


495 

J=SN CHK(4 ); 

621 


496 

IF (I«J) == 6 [ 

622 

TITLE() 

497 

• SC(PS][YK)=ALL SUM( )-^20 ; 

623 

VAR I,J ; 

498 

)EF I == 5 [ 

624 

BEGIN 

499 

SC[PS 】 lYK]=ALL_SUM( ) + 20 ; 

625 

LOCATB(0 f l ); 

500 

】 ENDIF ; 

626 

PRINT( H O O 

501 

1 

627 

PRINT(" OO 00 

PRINT( M 000 00 00 

502 

12 : [ 1% FOUR OF A KIND 拿 / 

628 

503 

SORT"; 

629 

PRINT(" 0 0 寒拿拿 000 场 

504 

IF SN CHK{2) >= 4 

630 

PRIHT( M 0 0 拿 0 0 鏽 

505 

SC? PS][YK J =ALL^SUM( >+25; 

631 

PRINT( M t % 0 0 t 拿拿拿 9 

506 

1 

632 

PRINTr 拿 e 韋⑭ 

507 

13 [ 1% YARBOROUGH t/ 

633 

PRINT(" 享寡拿 ^ 拿拿拿 

508 

SCIPSHYK]=:ALL SUM (); 

634 

PRINT (" 拿 

509 

1 

635 

PRINT( M 拿拿拿拿 

510 

14 : 【ハ KISMET! t/ 

636 

LOCATE(0,12 ); 

511 

IF SN CHK{0) == 5 

637 

PRINT{" PROGRAMMED BY M.N. & T.S.¥N">; 

512 

SCTPS][YK]=ALL SUM()+50 ; 

638 

PRINT r , ¥N">; 

513 

] 

639 

PRINT( M FOR S-OS SLANG COMPILERVN **); 

514 

] 

640 

FOR 1=0 TO 4 [ 

515 

END ; 

641 

BOX PRTI2+I 拿 8.19 f 6+I 拿 8,23} ; 

516 


642 

DICE SUB(I f 3+I*8,20 ); 

517 


643 

1 

518 

SORT() 

644 

HIT ANY(11,17 ); 

519 

VAR GAP,I,J ; 

645 

KBIJF^CLR (); 

520 

BEGIN 

646 

FOR J=0 TO 6 ( 

521 

QAP=3 ; 

647 

FOR 1=0 TO 4 [ 

522 

FOR 1=0 TO 2 [ 

648 

DICE[I]=RND(6)+1 ; 

523 

FOR J=0 TO 4-GAP 【 

649 

DICE SUB(1,3+1 拿 8,20>; 

) 

524 

IF DICEIJ1 > DICEIJ+GAP] 

650 

525 

SWAP(J,J+GAP ); 

651 

WAIT(10 ); 

526 

] 

652 

] 

527 

—GAP; 

653 

WAIT(50 ); 

528 

] 

654 

END ; 

529 

530 

END; 

655 

656 


531 


657 

INTGET() 

532 

SWAP(I f J) 

658 

VAR I,KEY : 

533 

VAR TEMP ; 

659 

BEGIN 

534 

BEGIN 

660 

FOR 1=0 TO 7 l 

535 

TEMP=DICEII1; 

661 

LOCATE(1,16+1 ); PRINT(SPC$(38)) ; 

536 

D1CEJIJ=DICB[J ]; 

662 

] 

537 

DICBtJJsTBMP; 

663 

BOX,PRT(02 f 16 f 37 f 23 ); 

538 

END ; 

664 


539 


665 

LOCATE(04,17) ; PRINT("HOW MANY PLAYERS?(1-4) M ) 

540 


666 

WHILE TRUE l 

541 

TOTAL() 

667 

LOCATE(26,17); 

542 

VAR B SC f K SC,T SC,BONUS; 

668 

PRINT(SPC$(5) ); 

543 

BEGIN 

669 

LOCATE(26,17 ); 

544 

FOR PS=0 TO PS_MAX l 

670 

KEY=INKEY(1) ; 

545 


671 

PRINT(KEY- , 0 , ) ; 

546 

B SCr0; 

672 

IF KEY< , 5 , AND KEY> *0* l 

547 

K 一 SC=0; 

673 

PS MAX=KEY- , 0 , -l ; 

548 

T SC=0 ; 

674 

EXIT ; 

549 

BONUS=0 ; 

675 

】 EF KEY == «1B f 

550 


676 

STOP() ; 

551 

KBUF CLR (); 

677 

)ENDIF ; 

552 

NAMB (*) ; 

WAIT(150) ; 

678 

] 

553 

679 


554 

FOR YK=0 TO 5 [ 

680 

FOR PS=0 TO PS MAX [ 

555 

B SC=B SC+SC 【 PS 】【 YK]; 

681 

LOCATE ( 04,19-fPS) ; 

556 

LOCATE(23-fP8t4 t 6 ); 

682 

PRINT( M INPUT YOUR NAME,PLAYER”>; 

557 

PRINT(FORM$(B SC,3)) ; 

683 

PRINTIPS+l ); PRINT (••••. い; 

558 

] 

684 

LINPUT(BUFF+PS t$10 f 9 ); 


559 

560 

561 

562 

563 

564 

565 

566 

567 

568 

569 

570 

571 

572 

573 

574 

575 

576 HIT 3PC() 

577 VAR KEY 

578 BEGIN 


WAIT(150 ); 

FOR YK=6 TO14 [ 

K_SC=K__SC+SC 【 PS 】【 YK 】; 
LOCATBT23+PS 拿 4 丨 13) ; 

PRINT(FORM$(K^SC,3 )); 

] 

WAIT(150 ); 

IF B SC > 62 BONUS=35 ; 

IF B SC > 70 BONUS=55 ; 

IF B SC > 78 BONUS=75 ; 

T__SC=B_SC+K_SC+BONUS; 
l5cATE<23+PS 拿 4,23 >; 

PRINT(FORM$(T_SC f 3 )); 


1 : WD ; 


579 

580 

581 

582 


REPEAT [ 

KBUF_CLR(}; 

LOCATB(l,2 ); 

LOCATB(l f 2 ); 


685 

686 

687 

688 

689 

690 

691 

692 

693 

694 

695 

696 

697 

698 

699 

700 

701 

702 

703 

704 NAMB() 

705 BEGIN 


IF MEMW 【 BUFP+PS 拿 $10] == $2020 [ 
CASE PS OF l 

MEMWlBUFF+$00 】 =$3158; 
MEMW[BUFF+$10J=$5A4D ; 


02 


MEMWlBUFF-«-$20J=$484F ; 
MEMWIBUPF ♦ 拿 22] = $5821•• 


MEHW[BUFF+$30] ^13658 ; 
MEMW[ BUFF+$32 】 :: 拿 4B38 •• 


END; 


PRINT(.. HIT SPACE KEY 
PRINT(SPC$(17 )); 


706 

707 

708 


LOCATB(1,2 ); 

PRINT("PLAYER" 
PRINT(PS^l ); 


►電脳倶楽部の ボールペン, ありがとうございました。さっそく砂時計の時間を計ったと 

ころ,約3分10秒でした。カップラーメンを食べるとき(ほとんどないが)にでも使わせ KISMET 141 

ていただきます。もちろん,ボールペンとしても使いますけど。 松本太 (20) 大阪府 







709 PRINT(MSX$(BUFF+PS*$10 )); 

710 END; 

711 

712 

713 INITO 

714 BEGIN 

715 WIDTH(40 ); 

716 PRINT ( M ¥C ); 

717 /t INIT^JSO ; t/ 

718 END ; 

719 

720 

721 LAST1() 

722 VAR I,Y; 

723 BEGIN 

724 FOR 1=0 TO14 [ 

725 IF SCIPSHI] == NONSBLBCT 


726 

727 

728 

729 

730 

731 

732 

733 

734 

735 

736 

737 

738 

739 

740 

741 

742 


Y=I + 7-MYK>5 ); 

JUDGE (); 

LOCATE(23+PS»4,Y ); 

PRINT(FORM$<SC 【 PS 】 lYK 】, 3> >; 
EXIT FROM FUNC ; 

]BNDIF ; 

] 

END ; 


本 ORIGINAL PROGRAMMED BY M,NAGUIHA 
f t FOR CZ-8FB01 VI.0 

r t S-OS VERSION PROGRAMMED BY T.SAKAKI 
,拿 FOR SLANG COMPILER 

拿 MACHINE : CZ-851CR,CZ-880CB 

拿 SPECIAL THANKS TO MR.ASO 


全機種共通システムインテックス 


■ 85 年6月号-- 

序論 共通化の試み 
第1部 S - OS “ MACE ” 

第2部 Lisp -85 インタプリタ 
第3部チェックサムブログラム 

■ 85 年 7 月号 一 

第4部マシン語ブログラム開発入門 
第5部エディタアセンブラ ZEDA 
第6部デバッグツール ZAID 

■ B 5 年8月号 

第7部ゲーム開発パッケージ BEMS 
第8部ソースジェネレータ ZING 

■ 85 年 9 月号 一 

インタラブト S - OS 番外地 
第9部 マシン語入カツール MACINTO-S 
第10部 Lisp -85 入門(丨: 

■ 85 年10月号一 

第11部仮想マシン CAP - X 85 
連載 Lisp -85 入門⑵ 

_85 年 11 月号—— 

連載 Lisp -85 入門 (3) 

■ 85 年 12 月号—— 

第12部 Prolog -85 発表 
■86 年1月号-一 
第13部リロケータブルのお話 
第14部 FM 音源サウンドエディタ 

■ B 6 年2月号一 

第15部 S-OS “ SWORD " 

第16部 Prolog -85 入門⑴ 

■ B 6 年3月号-一 

第17部 magiFORTH 発表 
連載 Prolog -85 入門⑵ 

■ 86 年4月号一 

第18部思考ゲーム JEWEL 
第19部 LIFE GAME 
連載 基礎からの magiFORTH 
連載 Prolog -85 入 PK 3) 

■ 86 年5月号 

第20部スクリーンエディタ E-MATE 
連載 実戦演習 magiFORTH 

■88 年8月号一 
第21部 Z 80 TRACER 
第22部 magiFORTH TRACER 
第23部ディスクダンプ&エディタ 
第24部 " SWORD ” 2000 QD 
連載 対話で学ぶ magiFORTH 
特別付録 PC -8801 版 S -0 S " SW 0 RD ” 
■86 年7月号一 

第25部 FM 音源ミュージックシステム 
付録 FM 音源ボードの製作 

連載 計算カアップの magiFORTH 
特別付録 SMC -777 版 S -0 S “ SW 0 RD ” 

■ 86 年8月号一 

第 2 S 部対局五目並べ 
第27部 MZ - 2500版 S -0 S " SW 0 RD " 

■ 86 年9月号 —— 

第28部 FuzzyBASIC 発表 
連載 明日に向かって magiFORTH 
_86年10月号一- 

第29部ちょっと便利な拡張プログラム 
第30部ディスクモニタ DREAM 
第31部 FuzzyBASIC 料理法く1> 

■ 86 年11月号-- 

第3 2部 バズノレデーム H 0 TTAN 
第33部 MAZE in MAZE 
連載 FuzzyBASIC 料理法く 2> 

■ 86 年12月号一 

第 34 部 CASL & COMET 
連載 FuzzyBASIC 料理法 <3> 


■ 87 年1月号一 

第35部マシン語入カツール MACINT 0 -C 
連載 FuzzyBASIC 料理法く4> 

■ 87 年2月号一 

第36部アドベンチャーゲーム MARMALADE 
第37部テキアベ作成ツール C 0 NTEX 

■ 87 年3月号 

第38部魔法使いはアニメがお好き 
第39部アニメーションツール MAGE 
付録 “ SWORD ” 再掲載と MAGIC の標準化 

■ 87 年4月号- 

第40部 INVADER GAME 
第41部 TANGERINE 

■ 87 年5月号 

第42部 S -0 S “ SW 0 RD " 変身セット 
第43部 MZ -700 用 “SWORD ••を QD 対応に 

■ 87 年6月号 
インタラプトコンノヽ•イラ物言吾 

第44部 FuzzyBASIC コンパイラ 
第45部エディタアセンブラ ZEDA -3 

■ 87 年7月号 

第46部 STORY MASTER 

■ 87 年8月号 

第47部パズルゲーム碁石拾い 
第 4 B 部漢字出カパッケージ JACKWRITE 
特別付録 FM -7/77 版 S -0 S " SW 0 RD " 

■ 87 年9月号——一—— 

第49部リロケータブル逆アセンブラ Inside-R 
特別付録 PC -8001/8801 版 S -0 S “ SW 0 RD ” 

■ 87 年10月号 —— 

第50部 tiny CORE WARS 

第51部 FuzzyBASIC コンパイラの拡張 
第52部 XI turbo 版 S -0 S " SW 0 RD ” 

■ 87 年11月号 

序論 神話のなかのマイクロコンピュータ 

付録 S -0 S の仲間たち 

第53部もうひとつの FuzzyBASIC 入門 
第54部ファイルアロケータ& ローダ 
インタラプト S -0 S こちら集中治療室 
第55部 BACK GAMMON 

■ 87 年12月号 

第56部タートルグラフィックパッケージ TURTLE 
第57部 Xlturbo 版 “ SWORD " アフターケア 
ラインプリントルーチン 
特別付錄 PAS 0 PIA 7 版 S -0 S “ SW 0 RD ” 

■ 88 年彳月号- 

第 5 B 部 FuzzyBASIC コンパイラ•奥村版 
付録 石上版コンパイラ拡張部の修正 

■ 88 年2月号- 

第59部シューティングゲーム ELFES 

■ 88 年3月号 一— 

第60部構造型コンパイラ首語 SLANG 

■ 88 年4月号- 

第61部デバッギングツール TRADE 

第62部シミュレーションウォーゲーム WALRUS 

■ 88 年5月号—— 

第63部シューティングゲーム ELFES II 
第64部地底最大の作戦 

■ B 8 年6月号- 

第65部構造化首語 SLANG 入門: I ) 

第66部 Lisp -85 用 NAMPA シミュレーション 

■ 88 年7月号 一 

第67部マルチウィンドウドライバ MW -1 
連載 構造化言語 SLANG 入門⑵ 

■ 88 年8月号-- 

第68部マルチウィンドウエディタ WINER 

■ 88 年9月号- 

第69部超小型エディタ TED -750 
第70部アフターケア WINER の拡張 


■ B 8 年10月号- 

第71部 SLANG 用ファイル入出カライブラリ 
第72部シューティングゲーム MANKAI 

■ 88 年11月号- 

第73部シューティングゲーム ELFES IV 

_88年12月号 - 

第74部ソースジヱネレータ S 0 URCERY 

■ 89 年1月号 

第7 5部パズルゲーム LAST ONE 
第76部ブロックゲーム FLICK 

■ 89 年2月号- 

第77部高速エディタアセンブラ REDA 

特別付録 X 〗版 S -0 S “ SW 0 RD ” く再掲載〉 

■ 89 年3月号- 

第78部 Z 80 用浮動小数点演算パッケージ S 0 R 0 BAN 

■ 89 年4月号- 

第79部 SLANG 用実数演算ライブラリ 

■ B 9 年5月号- 

第80部ソースジヱネレータ RING 

■ 89 年6月号 

第81部超小型コンパイラ TTC 

■89 年7月号- 

第82部 TTC 用パズルゲーム TICBAN 

■ 89 年8月号- 

第83部 CP / M 用ファイルコンバータ 

■ 89 年9月号- 

第84部生物進化シミュレーション BUGS 

■ 89 年10月号- 

第85年小型インタプリタ言語 TTI 

■ 89 年”月号- 

第88部 TTI 用パズルゲーム PUSH BON ! 

■ 89 年12月号- - 

第87部 SLANG 用リダイレクションライブラリ 
DIO . LIB 

■ 90 年1月号- 

第 8 B 部 SLANG 用ゲーム WORM KUN 

特別付録再掲黻 SLANG コンパィラ 
■90 年2月号 

第89部超小型コンパイラ TTC ++ 

■90 年3月号- 

第90部超多機能アセンブラ OHM - Z 80 

■90 年4月号- 

第91部ファジィコンビュータシミュレーショント MY 

_9〇年5月号- 

第92部インタプリタ言語 STACK 

■90 年6月号- 

第93部リロケータブルフォーマットの取り決め 
第94部 STACK 用ゲーム SQUASH ! 

第95部 X 68000 対応 S-OS “ SWORD " 

特別付録 PC -286 対応 S -0 S “ SW 0 RD ” 

_9〇年7月,- 

第96部リロケータブルアセンブラ WZD 

■ 90 年8月号- 

第97部リンカ WLK 

■ 90 年 g 月号- 

第98部 BILLIARDS 

■ 90 年10月号- 

第99部ライブラリアン WLB 

■ 90 年11月号- 

第100部タブコード対応エディタ EDC-T 

■ 90 年12月兮- 

第101部 STACK コンパイラ 

■91 年1月号- 

第102部ブロックアクションゲーム COLUMNS 


* 以上のアプリケーションは,基本システムである 
S-OS “ MACE ” または S -0 S “ SW 0 RD " がないと動作 
しませんのでご注意ください。 


142 Oh! X 1991.2. 















































































前回はセンサー理論編ということで, A / 
D コンバータに外付けするためのセンサー 
回路を設計するための予備知識について解 
説しました。実習回路例として,アルコー 
ルセンサーと光センサーとを挙げましたが, 
光センサーの回路では皆さんにはあまり馴 
染みのないオペアンプという 1 C を使いま 
した。実際,オペアンプは TTL -1 C に並 
んで最もよく使われている 1 C のシリーズ 
なのですが,アナログ信号用の 1 C という 
ことで,これまでパソコン雑誌上で解説さ 
れる機会は多くなかったように思います。 
そこで今月はもう1回理論編ということに 
して,オペアンプの使い方について徹底的 
に学んでみたいと思います。 


アナログ信号の増幅 


アナログ信号がデジタル信号と異なる大 
きな点は連続した f 直を取るということです。 
10 月号の解説を読み返してみるとわかると 
おり, A / D コンバータには分解能というも 
のがあります0たとえば,フルスケール 5V 
の8ビット A / D コンバータの最小単位は 
5/256 = 0. 01953125 V ということになりま 
す。ところが,アナログ量は連続量なので, 
もちろん 0.0IV という量も存在します。 0. 
01V が A/D コンバータに入力されたとし 
ても分解能の 5/256V よりも小さいために 
A/D 変換されたあとは 0V ということにな 
ってしまいます。 0 . 01V でも 0. 011V でも 0. 
019V であっても,そして本当に 0V のとき 
も含めてすべて 0 V になってしまいます。 

図 1 オペアンプの基本的な使い方 


〇 Eo 


1) 反転増幅器 


そのようなデジタル量にぉける誤差(量 
子誤差という)はアナログ量を扱うセンサ 
一回路にぉいて重大な問題となります。な 
ぜなら,センサーが自然界の物理量を検出 
したときに,そのセンサーが感度の高い優 
れたものであるほど,出力信号の大きさは 
微小なことが多いからです。 

先月の光センサー回路がそのよい例で, 
フォトダイオードの電気的な信号出力をそ 
のまま A / D コンバータに入れてもほとん 
ど分解能以下になってしまうのです。その 
ままではす ベて 0 V になって話になりませ 
ん。したがって,光センサーで検出した光 
の強度を A / D コンバータを通して パソコ 
ンで処理しようとすれば, A / D コンバー 
夕のフルスケール 5 V 近くまで信号を強め 
てやらなければなりません。しかも,セン 
サーの出力はアナログ量ですから,強めた 
信号もそれと同じようにアナログ量でなけ 
れば,都合が悪いのです。 

そこで,あるアナログ信号を入力させて, 
その定数倍(倍率という)の信号を出力す 
るような回路が便利です。その回路をアナ 
ログ増幅器というのです。たとえば,倍率 
100倍の増幅器では,0.0 IV は IV に, 0.0 
11 V は 1.1 V に,そして0.019 V は 1.9 V にな 
るので,分解能 5/256 V の A / D コンバータ 
ではその3つは区別できるのです。 

パソコンの内部では,増幅器はそんなに 
多く使われていないように思うでしようが, 
FM 音源や AD PCM , CRT デイスプレイ 
などのまわりは増幅器が必ず使われていま 
す0もちろん,テレビやビデオ,オーデイ 
才等の機器では, 
ふたを開けるとど 
こもかしこも増幅 
器だらけです。そ 
れだけ,アナログ 
信号の増幅という 
のは電子回路にお 
いて大切な働きな 
のです。 


A / □コンバータを利用したセンサー回路の入門ですが,今回 
は,そこで使われるオペアンブを詳しく取り上げてみましょラ。 
アナログ信号の増幅ということでちょっとデジタル回路から離 
れますが,利用度の高い 1 C ですからぜひ理解してください。 


2) 非反転増幅器 


アナロク H 臌)万齷^オペアンプ 


オペアンプは演算増幅器 (Oprational 
Amplifier ) の略で,アナログ信号の増幅 
器としての基本的な機能をひとまとめにし 
た 1 C です。増幅度の設定のために若干の 
抵抗器などを外付けにする必要があります 
力' デジタル回路における TTL-IC と同 
じように中身はブラックボックスとして, 
ただ端子どうしをつないでいくだけで大部 
分の回路は組めてしまうものです。オペア 
ンプを使った回路図を見ると,三角形とそ 
のなかに十と一の記号しかありません。中 
身は複雑な 1 C でも機能としてはそれだけ 
単純明快なのです。 

さて,オペアンプの初歩的な使い方には, 

1) 反転増幅器(図1 - 1 ) 

2) 非反転増幅器(図1 - 2 ) 

の2種類があります。先月載せた光センサ 
一の回路にある2段のオペアンプもこれら 
の使い方をしているにすぎません。そこで 
今回はこの2つに限定して説明します。 

1) 反転増幅器 

回路図の入力端子に Ei の電圧をかけた 
ときに出力 Eo は 
Eo =-( R f / Ri ) Ei 

となります。このとき,入力電圧には正負 
両方がかけられ,また出力電圧も正負両方 
がありえます。したがって,倍率一 ( R f / 
Ri ) が負ですから,入力が正のときは出 
力が負,入力が負のときは出力が正という 
ように「反転」します。これが反転増幅器 
という意味です。電圧の絶対値の倍率は外 
付けの R f と Ri の値を適当に選ぶことによ 
って,自由に設定できます。もちろん R f 
を Ri より小さくして倍率を1より小さく 
することも可能で,この場合は増幅器とい 
うよりは減衰器ということになります。 

2) 非反転増幅器 

回路図の入力端子に Ei の電圧をかけた 
ときに出力 E 。 は, 


ハードウェアエ作入門 143 














Eo =(1 +R f/R i ) E i 
となります。「非反転」の意味はもうおわか 
りでしょう。倍率が正なので,出力電圧の 
符号は入力電圧の符号に対して反転しない 
からです。また,非反転増幅器の場合はど 
のように抵抗値を設定しても倍率は1より 
も大きい点も異なります。 

オペアンプの代表的な2種類の回路につ 
いて,以上のことを理解するだけで簡単に 
使いこなすことができるのです。しかし, 
もう少し一般的なオペアンプの让組みを理 
解すると,オペアンプと外付け抵抗を使っ 
たときになぜ上のような倍率が得られるの 
かということを2つまとめて説明すること 
ができます。興味のある人は囲み記事のは 
うを参考にしてください。 



オペアンプの使用例 


では,先月号に:級せた光センサー间路で 
のオペアンプの使い方を今述べた2つの基 
本回路にしたがって考えてみましよう。図 
2がその刖路図です。オペアンプが2段あ 
りますが,1段目は反転増幅器と同じよう 
な使い方で,電流増幅器といいます。これ 
は,フォトダイオードの出力信号の電:流を 
電圧に変える増幅器です。2段目は上で述 
ベた非反転増幅器とまったく同じです。 

1段目の回路を図1 - 1の反転増幅器と 
見比べてください。入力電圧のところにフ 
才トダイオードがつながっているのはわか 
りま すが, 入力側の抵抗 R i がありません。 
Ri がないとすると,倍率一 ( Rf / Ri ) を考 
えると出力 E 。 は無限大になってしまうよ 
うに思えますが,実際はフォトダイオード 
に内部抵抗があり,ちょうど I 二 Ei / Ri に 
相当する電流を流すのです。したがって, 
フォトダイオードの出力電流が I のときに 
出力 E 。 は, 


Eo = R f I 

となります。このように,信号源が一定電 
流を流してくれるような場合には,反転増 
幅器の入力抵抗を省略した形の回路を使い 
ます。このような増幅器を電流増幅器とい 
うのです。このとき,フォトダイオードの 
電流の向きは出力電圧が正になるように接 
続します。回路図では, R f = iMn を選 
んでいますが,フォトダイオードの出力電 
流が1// A 程度なので(もちろん光強度に 
よる),1段目の電流増幅器の出力は IV 程 
度ということになります。 

1 MCI と並列に入っているコンデンサは 
入力信号が急激に変化したときにある程度 
貯め込んでから出力するためのもので,正 


図2光センサー回路 



確には積分回路といいますが,今回は入門 
編ということで詳しい説明は省略すること 


にします。 

2段目は非反転増幅器そのものなので, 
問題はないと思います力す, Ri が 10 kQ の固 
定抵抗に対して, Rf は 100 k の可変抵抗 
にしてあります。倍率は ( 1 + R f / Ri ) 
で与えられますから,可変抵抗を調整する 
ことによって,1倍から11倍まで変えるこ 
とができるようになっています。これは, 
だいたい1段目の出力が IV であることか 
ら, 2段目の出力 ( A / D コンバータの入 
力)を5 V に設定するためにあと5倍程度 
の増幅器が必要なのですが,使用する条件 
によって光の強度が変わることを予想して, 
倍率を変化させられるように便宜を図った 


のです。 



LM 358 と各種オペアンプについて 


以上でひと通りオペアンプの使い方を実 
際の回路例も含めて説明しました力%使っ 
ている部品の仕様については何も述べませ 
んでした。オペアンプと一口にいっても極 
めてたくさんの型番があり,いざ部品を選 
ぶにあたって迷ってしまうこともあるくら 
いです。いずれは皆さんが自分で回路設計 
することもあると思いますので,代表的な 
個々のオペアンプについて,部品の選び方 
を説明してぉきます。 

1) 汎用オペアンプ 

特別な回路でない限り,まず最初に候補 
に挙がるのが741シリーズと呼ばれるもの 
です。上で述べた,反転 • 非反転増幅器の 
使い方をする限りこの741で十分です。た 
だし,最近この741は廃品種になった模様 
で,その代わりに4558シリーズが最もポピ 
ュ ラーなオペアンプになって います。しか 


し,いくら汎用オペアンプといってもこの 
741(4558) は万能ではありません。特に以 


下に述べる点で注意が必要なときはより進 
んだオペアンプを使用します。 

2) 単電源オペアンプ 

今回のフォトダイオードの増幅回路でこ 
の741タイプを使用しなかった最大の理由 
は,741が ±12 V の電源を必要とする点で 
す。ハ。ソ コンでは TTL + 5 V のみの電源が 
都合がよいのです。では,741を無理に単 
電源で動作させたらどうなるかというと, 
まったく使いものにならないといってもよ 
いぐらいです。 

そこで, +5 V だけでも使える専用オペ 
アンプが必要になります。今回使用した L 
M 358 はその単電源オペアンプの代表です。 
あるいは LM 324 のほうがポピュラーとも 
いえるでしようが, LM 358 と LM 324 の違い 
は,同等なオペアンプが2個入りか4個入 
りかの違いだけです。また,1回路当たり 
の性能は741と同等と考えてかまいません。 

3) FET 入カオペアンプ 
オペアンプを微弱信号の増幅に使用した 

ときに問題になるの力 ? ,オペアンプの理想 
特性(理想特性については囲み記事参照) 
からのずれです。特に,フォトダイオード 
のような電流信号出力のセンサーを使う場 
合,オペアンプの入力端子に流れ込む「バ 
イアス電流」というものの大きさが問題に 
なります。 FE 丁入カオペアンプは一のバ 
イアス電流を小さくし,微弱電流の増幅に 
特に高性能を示すものです。代表的なのは 
LF 356 です。 

このような事情を考えると,今回の光セ 
ンサーの増幅回路には本来はこの FETA 
カオペアンプを使用すべきです。しかし, 
今回はあまり微小な光強度での精度は必要 
としないことと, LF 356 も正負両方の電源 
が必要なので,単電源 FET 入カオペアン 
プを選ぶとかなり特殊になってしまうこと 
から,目をつぶりました。 

4) 高精度オペアンプ 


144 Oh! X 1991.2. 


















オペアンプの理想特性からのずれとして 
次に挙げられるのが,「オフセット電圧」と 
呼ばれるもので,これはオペアンプの+入 
力端子と一入力端子との電位差のことをい 
います。理想特性ではこの電位差は0と置 
いています。問題は,このオフセット電圧 
が時間的に変動(ドリフト)したときで, 
そうなると増幅器の倍率も揺らいでしまい 
精度ががた落ちということになってしまい 
ます。高精度オペアンプ OP 07 はオフセッ 
卜電圧のドリフトが小さく,またノイズに 
も強くて,実に幅広く用いられている高精 
度オペアンプです。 

5) 高速オペアンプ 

最後の問題点は,オペアンプの周波数特 
性です。オーディオ信号のように時間的に 
変動する信号を増幅する場合に,オペアン 
プの反応が追いつくかどうかというのはか 
なり問題になる点です。あまりに変動が速 
すぎるとオペアンプの増幅が追いつかなく 
なり,入力した信号に比例する出力が得ら 
れなくなります。特にオーディオ用の増幅 
器の場合には,音が歪むので使いものにな 
りません。 

たとえば741シリーズを使って100倍の倍 


率を取る場合,歪みを1%に抑さえるため 
には入力を lkHz = 1000 Hz にしなければ 
いけません。オーケストラの楽曲は10〜20 
kHz は出ているので,せっかくの名曲も台 
なしです。このような場合には,専用の高 
速オペアンプを使うしかありません。今で 
はオーディオ用オペアンプという名で多数 
開発されていて,それらは 100 kHz 程度ま 
で倍率の変動が十分抑えられているほか, 
倍率の変動には現れなくても音の響き具合 
に影響のある位相歪みというものに対して 
も満足の性能が出るようになっています。 



アナロク回路もだいじよーヴイ! 


Oh ! X 誌上で私の知る限り初めてのアナ 
ログ回路入門ということで,ハードウェア 
工作入門としては少し余計なくらいまで説 
明してみました。「デジタル回路だけでも全 
然理解できないのにさらに難しかった」と 
いう感想を持つ読者も多いかもしれません 
が,何も苦手意識を持つ必要はありません。 
デジタル回路もアナログ回路も入門のうち 
は,市販の 1 C をどう組み合わせてつなぐ 
か,というパズルにすぎないのです0 



ハードウェアの理解には皆さんが B ASI 
C や C の文法を覚える以上に難しいことは 
何もなく,大切なのは,まず苦手意識を忘 
れること。その次は,目的の回路に使われ 
ている主要な 1 C の役割をたとえチンプン 
カンプンでもいいから,数多く眺めてみる 
ことです。 1 C の規格表や,回路の実例集 
などをぱらばらとめくっているうちに似た 
ような 1 C の使い方に何度か出会い,知ら 
ず知らずのうちに回路の組み方がわかって 
くるものなのです。 

それでは,来月からまた改めてハードウ 
ヱアエ作実習に一緒にチャレンジしようで 
はありませんか。 


オペアンプの理想特性 


オペアンプをよほど専門的に使わない限りは 
次に述べる理想特性というものを理解しておけ 
ばほぼどんな回路にでも対応できます。 

その前に,オームの法則について復習してお 
きましょう(図3)。オームの法則というのは, 
抵抗 R の両端に電圧 V をかけたときにその抵抗 
に流れる電流丨についての関係が, 

V = I • R 

となる法則です。抵抗 R , と R 2 が直列になって 
いるとき,全体の抵抗 R は R = R !+ R 2 になる 
ので,電流丨は, 

I = V / ( R !+ R 2 ) 

になります。またその場合に , Ru R 2 それぞ 
れの両端の電圧はやはりオームの法則にしたが 
い, 

V ,= I R t = VR " ( R !+ R 2 ) 

V 2 = I R ,= VR 2 / ( R ,+ R 2 ) 

となります。これはちょうど全体の電圧 V を 
卜: R 2 に内分した値になっていて,簡易ジョ 
イスティックのところで説明した電圧入力の求 
め方と同じです。そして,オームの法則の成り 
立つ抵抗の両端で,電流の流れる方向に沿って 
電位は高いという約束になっています。 

では,オームの法則が頭に入ったところで, 
オペアンプの本質ともいえる理想特性の説明に 
入りましょう。オペアンプの記号は図丨のよう 
な三角形で,一入力と+入力と出力の3端子を 
持っています。このオペアンプの一入力の電位 
を E _, +入力の電位を E + とおきます。 

さて,通常のオペアンプの使い方は,出力端 
子から抵抗を通して一入力につないであり,こ 
れを負帰還といいます。図丨の反転増幅器,非 


反転増幅器どちらも負帰還がかかっているのが 
わかるでしょう。負帰還がかかっているときの 
オペアンプの理想特性というのは, 

•E + =E_ 

籲一入力,+入力ともに電流は流れ込まない 
•出力電流はいくらでも流せる 
以上の3つを考えます。 

この理想特性を反転,非反転増幅器それぞれの 
場合に適用させてみます。 

1) 反転増幅器 

図丨 - 丨を見てください。 

• まず+入力端子が G N D に落ちているので, 
E + = 〇 

• 理想特性より, 

E + = E _= 0 

• 出力端子から R f に流れる電流を丨とおくと 
オームの法則より 

Eo - E _ = E 0 = I R f 

• 一入力端子には電流は流れ込まないので, 
Ri に流れる電流も丨だから, 

E_-Ei = - Ei = I Ri 
• I を消去して, 

Eo =- ( Rf / Ri ) Ei 

この式が本文中で示した倍率の式です。 

2) 非反転増幅器 

図 I - 2を見てください。 

• まず+入力端子に入力電圧がそのままかかっ 
ているので, 

E + = Ei 

• 理想特性より, 

E + = E _ = E i 

• 出力端子から R f に流れる電流を丨とおくと 


オームの法則より, 

Eo - E _ = Eo - Ei = I R f 
• 一入力端子には電流は流れ込まないので, 
Ri に流れる電流も丨だから, 

E _ = E = I Ri 
• I を消去して, 

E 0 = ( I + R f / Ri ) Ei 
この式が本文中で示した倍率の式です。 

図3オームの法則 


_ _ _ v [_ > 

[基本形 I V=I*R 丁 1 


V = i -( r , + r 2 ) 


f " 抵抗が直列に 

[ なっているとき 




ハードウヱアエ作入門 145 

































I 


★(で)のショートプロば一てい 


行け行けユーティリティ 


Komura Satoshi 


古村聡 


今月の(で)のシヨートプ□ば一ていはツール 2 本立て。どちらも X68000 用で, 
1 本目が英字の字間を詰めてくれる X-BASIC 用関数 「 D _ symbol ( L , 2 本目 
が少し便利な機能つきの OPM ファイル演奏バッチファイル 「 olay . batj です。 



illustration : T.Takahashi 


あ、みなさまとっくに明けちゃいました 
けどおめでとうございます。(で)でござい 
ます。 

TeX つてのがあるんですけどご存じで 


に 2 M バイトになったばっかしなんだぞ。 

ということで,そのような環境になるま 
ではおあずけとなったのでした(しかし, 
いつになる ことやら)。 


リスト1が p _ symbol () で,リスト2力 ? p 
symbol () を使ったサンプルプログラム 0 
リスト1で打ったものを(たとえば,リス 
卜1を打って psymbol . bas で save @ したの 


すか?この TeX っていうのは大雑把に 
いうと,ワープロの印刷部分だけ持ってき 
て強化したようなもんで,テキストフアイ 
ルに書体やら字の置き方 ( TeX のロゴみた 
いな置き方ができるわけね)とかのデータ 
を加えてこれに通してやるとあ一ら不思議, 
プリンタからまるで印刷物のような美しい 
文書が出てくるってなものなんです。 

というわけで,実はついに永年あこがれ 
ていた X 68000 用の TeX を手に入れたんで 

すよ。うるうる,うれす L . 。で,うれ 

しさついでに G ++ コンパイ ラもネットか 
らダウンロード してきち やった。 こいつは 
GNU 版の C + + モドキで,早い話, GCC の 
親分みたいなもんなんですけどね。 

しかし . , Tex って馬鹿でかいよ 一。 

フロッピーデイスクにして8枚分 (10 M バ 
イト近い)。 20 M バイトしかない私の ハード 
デイ スク はもうどんなに詰めてもあと2,3 
M バイトしか余らない。うう っ, どうや っ 
てイ ンス トールしろつ ちゅうんじや。 

しようがないから, G ++ で遊ぼうと思 

ってドキュメントを読むと . ,なに,ま 

ともに G + +を動かすには4 M バイトは 
RAM が必要だと ( 2 M バイトでもぎりぎ 
り動かないことはないらしいんだけど)。私 
の マシンは この前, SX - WINDOW と 一緒 




つ W てつ WT 3 ブ12モーシ3:/ 


ではでは,今月の1本目。今月の1本目 
はちょっと便利な X - BASIC 用関数, p _ 
symbol () です。 

p symbol( ) for X 68000 

(X-BASIC) 
富山県作田定之 

プロポーシヨナル ピッチってご存じです 
か?そそ,プリンタの コマンド (モード) 
なんかにありますね。英語で文字を打ち出 
すときに字と字の間を詰めてかっこよ〈見 
せる,あの プロポーシヨナル ピッチです。 

この p _ symbol () はそのプロポーシヨナ 
ルピッチで英文字と記号(全部の記号とい 
うわけじゃないんだけどね)をプロポーシ 
ヨナルピッチでダラフイック画面に表示す 
る関数なのです。 

書式は簡単で, 

p _ symbol ( pl , p 2 , p 3 , str , h , v , p 4 , p 5 , p 6) 
となっています。引数にはそれぞれ int 型 

(ただし, str だけは文字列型)で, 
pi X 座標 
p 2 Y 座標 

p 3 文字間隔をドット単位で指定 
str 表示する文字列 
h 横倍率 
v 縦倍率 

p 4 モード 0 = 16 X 16 1 = 24 X 24 

p 5 ノ 《 レツト•コード 

p 6 表示=1 or 非表示=0 
という内容を入れてください。 

返り値は整数で表示した場合の横幅のド 
ット数を int 型で返してきますので,うまく 
p 6 を応用すればセンタリングなども簡単 
にできるんじやないかと思います。 


なら), 

load ® ’’ psymbol . bas ” 

renum 200 

などとして, 200 行以降に関数を持ってきて 
からリスト2を打ち込んでください0 

おお, かっこええじゃあないですか。プ 
ロポーシヨナル ピッチか,やりますねえ。 
文字間を詰めるだけでこうもかっこよくな 
るもんなのね,英文字ってのは。サンプル 
の実行結果を見てるとほれぼれしちゃいま 
すよ。グラフイック画面に LINE や CIRCLE 
でよいしょとお絵描きして,こいつで文字 
を画面に表示し,プリンタに打ち出せば 
……,いま流行りのデスクトップパブリシ 
ングだ(おおっ一)! 

それは冗談としても,作者の作田さんが 
んばりましたね。このプログラム,英文字 
の字間を詰めてい〈わけですが,詰めるた 
めにはやっぱり文字の大きさをプログラム 
が知ってなきゃいけないわけですよね。て 
ことは作田さん,文字の大きさを決めるた 
めに1つひとつ試行錯誤して決めていった 
んでしようか(それともなにか別の方 
法?)。もし,そうだったらすごく手間ひま 
かかったんじゃないかと思います。その努 
力に金メダルあげましよう。めざせ TeX へ 
の道だあっ! 

おっと,そう:^。この関数はあくまで 
SYMBOL 関数,グラフィック画面に描画 
する関数ですからね,忘れてグラフィック 
RAM に RAM ディスタなんか設定しちゃ 
いけませんよ。それを忘れた私は……,せ 
っかく RAM ディスタにセーブした原稿を 
み一んなオシヤカにしちゃいました。これ, 
実はいまあわてて書き直してる最中だった 
りして。うお一っ,私の原稿を返せ一っ! 
気をつけましようね。ぐつすし(そんなや 


146 Oh! X 1991.2. 














つはお前だけだって)。 



LIVE in c/ 3 —h 7 l 2 (#—Ti' 


さ一て,気を取り直して次いきましょう 
か。今月の2本目はこのページでは初登場 
の X 68000 用のバッチファイルによる作品, 
「 play . bat 」 です。 

play.bat for X 68000 

(Human68k) 
島根県東裕人 

0 PM ファイル(ファイルの拡張子の3文 
字が*. opm となっている音楽データファ 
イルのあれのことですね)を演奏するため 
のバッチファイルです0 

このバッチファイルの実行には 「 play, 
bat 」 本体とデータの 「 init.opm 」 がペァで 
必要になります。で, 「 init.opm 」 はなく, 
それを作成する BASIC プログラム 「ma 
keinit.bas 」 (リスト 4) を実行する必要が 
あります。 

1) ed . x を立ち上げる 

2) リスト3 「 play . bat 」 を打ち込む 

3) [ ESC ], [ T ] でファイル名変更になる 
ので “ play . bat ” と打つ 

リスト i 


4) デイスク上に play . bat ができる 

5) BASIC を立ち上げる 

6) リスト4 「 makeinit . basj を打ち込む 

7) RUN 

という手順で,間違いがなければディスク 
上に init . opm が出来上がるはずです。 

おっと,注意! 「 makeinit . bas 」 はシス 
テムを立ち上げてまだなにも曲を鳴らして 
いない状態(内蔵音色が壊されていない状 
態)で,実行してくださいね! 

このように準備にはちよっと手間取るか 
もしれないけど,使い方は結構簡単です。 

コマンドモードで, 

A > play [OPM フアイル名/スイ ツチ] 
とすれば OK です。これで指*定した OPM フ 
ァイルを演奏してくれます。ファイルを指 
定しない場合は,現在のトラックにあるデ 
-夕で演奏するようになっています。 

で,肝心のスイッチなのですが,以下の 
ようなものがあります。 

/i 初期化。 OPM ドライバの内蔵音色, 
およびノイズジェネレータの初期化を行い 
ます 

/n ノイズジェネレータの初期化。ノイ 
ズジェネレータの初期化のみの動作になっ 



ています。曲も止まってしまうので,注意 
して使うこと 

/s 演奏の停止。ただし,停止するだけで 
トラックの内容は壊しませんから play ( cr ) 
や play / c などで,また演奏を開始するこ 
とができます 

/c 演奏を停止したところから再開 
/〇 nn 演奏中の曲のテンポの変更(ただし, 
ファイルの中にテンポの指定があるとまた 
元に戻ってしまう)。 nn は32から200の間で 
指定してください0また,〇と nn の間にはス 
ペースが 必要です 
/? ヘルプ 
実際に使うには, 
play / i ファイル名 

(音色を戻しておいてから,ファイルを演 


ブ〇—ボーシヨ 

ハ 

/* 害式: 

/» 

t p6 ) 

/* 

/* 

func p_symbol(x , y 
int i,j,k,l,p,s 
int xpt 
int X 
str m$ 

dim int lp(1,104+20+21*2 
+0 


ル • ビッチ対応 symbol 関数 

p_symbol(pi,p2 , p3 , atr$ , h , v , p4 , p5 

戻 0 值 = 横幅 

st$;str , h , v , mo , plcode , sw ) 


+ 1 
+4 
+ 3 
+6 
+ 0 
+ 0 
+ 1 
+ 3 
+ 0 
+ 2 
+ 5 
+5 
+ 10 
+ 0 
+0 


6 

10,2 


+ 4 

/* 

dim int rp( 
+0 
+ 2 
+ 5 
+ 4 
+ 7 
+ 1 
+ 1 
♦1 
+ 4 
+0 
+ 2 
+4 
+ 5 


104+20+21*2 


6 
5 

+11,14 
+ 1 
+ 1 
+ 1 
+ 4 
/* 


4 

4 

,2,13 


3 

4 

5 

17,6,3 

3 

4 


10,2,3,2,6,3,9, 


0,0 

0,0 


0,3 


17, 

0,0 

0,1 


/* 16x16 


1% 12x24 


11,2,3,2,6,3,9,4 
0 


2.1.3 

4.2.4 

6 , 2 , 


2 , 0,2 

4,1,3 


2, 7,5, 5, 2 , 1 , 2,1 


1,2 


str chkstr$[256]= "ABCDEFGHIJKLMNOPQRSTUV 
W X Y Z ,, 

chkatr$=chkatr$ + "abcdefghijklmnopqrstuv 


chkstr$=chkstr$ + " 01234567 89 " 

chkstr$=chkstr$ + " ! " # $ % & ' * + , - . : ; < = > ? @ ~ 

chkatr$ = chkstr$ + "ABCDEFOHI JKLMNOPQRSTlIVWXYZabcdfifghUklinnopqr 
stuvwxyz" 

chkstr$=chkstr$ + ”0123456789 ,, 
chkstr$=chk8tr$ + "!" 
chkstr$=chkstr$ + chr$(4H22) 
chkatr$ = chkstr$ + 
chkstr$=chkstr$ + chr$(&H2C) 
chk8tr$=chkstr$ + H - . : ; <s>?@^ ' *' 

/* 

if mo=0 then xpt=16 
if mo=l then xpt=24 
X=x 

for isl to len( st$ ) 
k=asc(roid$(Bt $ t i t l)) 

if (k>&HlF and k<&H80) or (k>&H9F and k<&HE0) then j=l:s=167:l 
=83 else j=2 : 8=1 : 1=-1 
m$=mid$ ( st$ , i •わ 
p=instr(s,chkstr$ f m$) 
p=(p¥j-l)Mp¥p) 

if sw= 1 then symbol( x+z 窣 h-(lp<mo , p)}*h , y , m$ , h , v , mo+ 
1,plcode , 0 ) 

x=xf((xpt¥(3-j))+z-(rp(mo,p)+lp(mo f p)))*h 
j¥2> 

next 

return(x-X) 
endfunc 


U スト 2 

10 ft sample 
20 ハ 

30 screen 2,0,1,1 
40 /本 

50 str a$[80]=" Non Proportional 

60 atr b$[ 80]=" Proportional Pitch Fonts 

70 atr c$[80]=" Exciting Computer X 6 8 0 0 

0 

80 str d$[80]= M Human68K Version 2.02 1987 88 89 90 By SHARP. 
90 str e$[80]="Proportional Pitch Fonts. 

100 /* 

110 palet(1,rgb(31,31,31)) 

120 symbol(0,50,a$,1,1,2,1,0) 

130 p_symbol(0,100 t l,b$,1,1,1,1,1) 

140 p_symbol(0,130,1,C$,1,1,1,1,1) 

150 p_syrabol(0,200,l,d$,1,1,0,1,1) 

160 p_aymbol(0,220,1,eS,1,1,1,1,1) 

170 end 
180 /* 

190 /* 


( で)のショートプロぱ一てぃ 147 
















































: HELP 

echo 

echo 

echo 

echo 

echo 

echo 

echo 

echo 

echo 


: END 

set $plf$= 
break on 


II スト 4 


10 /* make "init.opm" 

20 /拿 for play.bat 

30 /拿 

40 str filename = "init.opm" 

50 int vmax = 68 
60 int cl,c2, c3, fp 
70 atr crlf, inidata[255] 

80 dim char vdata{4,10) 

90 crlf = chr$ (&HD) ->-chrS (&HA) 

100 inidata = "(i)"+crlf+"(ml,10) M +crlf+ M (tl)yl5,0"+crlf+"(al, 
1) ,, +crlf+" (p)"+crlf 

110 /拿 

120 fp = fopen(filename , "c") 

130 fwrites(inidata, fp) 

140 for cl=1 to vmax 
150 m_vget(cl,vdata) 

160 fwritesC (v ,, + atr$(cl) + ' , ,0," , fp) 

170 for c2 = 0 to 4 
180 for c3 = 0 to10 

190 fwrites(str$(vdata(c2,c3fp) 

200 next 

210 next 

220 fseek(fp,-1,1) 

230 fwritesr)"+chr$(&HD)+chr$(4HA), fp) 

240 next 
250 fclose(fp) 

260 end 


copy XtempXJopmcmd.S$$ opm > nul 
del Xtemp%$opmcmd.$$$ > nul 
set $plf$=TRUE 
goto LOOP 

: TEMPO 

echo < < テンポを変更します >> 
echo (oX2) > XtempXJopmcmd.$$$ 
copy Xtemp%$opmcmd.S$$ opm > nul 
del XtempX$opmcrod.$$$ > nul 
set $plf$=TRUE 
shift 
goto LOOP 

:INIT 

copy c:¥batch¥init.opm opm > nul 

echo < < OPM ドライバを初期化しました > > 

set $plf$=FALSE 

goto LOOP 

: NOISE 

echo (i)(ml,10)(tl)yl5,0(al,l)(p)(i) > %temp%$opracmd.$$$ 
copy %temp%$opmcmd.$)$ opm > nul 
del Xtemp%$opmcmd.$$$ > nul 

echo < < ノイズジェネレータを初期化しました > > 
set $plf$=FALSE 
goto LOOP 


echo off 
break kill 
set $plf$=FALSE 


if ..%1”== 
goto SKIP 

: LOOP 

if "%2 "== 
shift 
: SKIP 


goto PLAYN 


"XI" 
"Xl" 
"% 1 .. 
..XI.. 
..XI" 
"XI” 
"XI" 
.•XI" 
..XI" 
"XI" 
"%l" 


Vp 

"/P 

"/a 

,./S 

"/c 

•VC 

"/? 

•,/n 

"/N 

■Vo 

'70 


goto PLAYN 
goto PLAYN 
goto STOP 
goto STOP 
goto CONT 
goto CONT 
goto HELP 
goto NOISE 
goto NOISE 
goto TEMPO 
goto TEMPO 


if X$plf$% == FALSE goto PLAY 
echo (w) > %temp%$opmcmd.$$$ 
copy XtempXSopmcmd.$ $ $ opm > nul 
del %tempX$opmcmd.$$$ > nul 


,, /i.. goto INIT 
if "XI"==.71" 


: PLAY 

if ,, %r , 

goto INIT 
if exist XI goto PLAY1 
if exist %1.opm goto PLAY2 
if exist XmusicXXl goto PLAY3 
if exist XmusicXXl.opm goto PLAY4 
echo < < ファイルがありません >> 
goto LOOP 


echo < < XI を演奏します >> 
copy %1 opm > nul 
goto PLAYE 
: PLAY2 

echo < < %1. opm を浪赛します >> 
copy XI.opm opm > nul 
goto PLAYE 
: PLAY3 

echo < < XI を演赛します >> 
copy XrousicXXl opm > nul 
goto PLAYE 
: PLAY4 

echo < < XI. opm を演奏します >> 
copy XmusicX%l.opm opm > nul 
: PLAYE 

set $plf$=TRUE 
goto LOOP 

: PLAYN 

echo < < 演奏を開始します >> 
echo (p) > Xtemp%$opmcmd.$$$ 
copy XtempXIopmcmd.S$S opm > nul 
del XtempXJopmcmd.$$$ > nul 
set $plf$=TRUE 
tfoto LOOP 

: STOP 

echo < < 漬赛を停止します >> 
echo (s) > Xtemp%$opmcmd.$ $ $ 
copy XtempXSopmcmd. $ S $ opm > nul 
del XtempXSopmcmd.$$$ > nul 
set $plf$=FALSE 
goto LOOP 

: CONT 

echo < < 演奏を再開します > > 
echo (c) > XtempXJopmcnd.J$S 


奏する) 

と力、,連続して演奏したいときには, 

play ファイル名ファイル名 . 

(ただし,曲が無限ループのものだったり 
すると止まらなくなるので注意!そのと 
きはブレイクキーで止めてね) 

なんていうふうに使います。もちろん,普 
通に1曲だけ聞きたいなんていうときには 
シンプルに, 

play ファイル名 

で, 0 K です。そうそう Human 68 k ver .1.0 
ではバッチのためのメモリが足りなくなり, 
バッチエリァサイズを拡大 ( COMMAND / 
B : 8などと)しなければ動かないので注 
意してくださいね。 

U スト3 


© 貝 K だつで^ブ R 7 今 SC /7! 

おお,そうだ。このプログラムでは, 
play ファイル名 

とすると, 0 PM ファイルをカレントデイレ 
クトリに探しにいきますが,そこに指 1 定し 
た 0 PM ファイルがないときには, “ music ” 
という環境変数に入っているデイレクトリ 
から探してきます。環境変数がどんなもの 
かは マニュアルを 見てもらうとして,とり 
あえず,たとえば 0 PM ファイルを入れてい 
るデイレクトリが“ opmfiles ” というデイレ 
クトリ名であれば, 

set music = a:¥oprrmles 


というふうに設定することができます。 
“ autoexec . bat ” にでも入れとくと便利で 
しょぅ。 

なになに? 投稿原稿によれば, 「0 h ! 
X 10 月号113ページを見てこれならもっと 
便利なバッチファイルがうちにあるぞい。 

と思い,投稿することにしました。内容か 
らいっても,これは「シヨートプロ 一て 
い」宛に投稿するのが妥当だと思いますの 
で,古村さん,煮るなり焼くなりしてくだ 
さい」とのこと。じゃ,私はライターであ 
るから焼いてみようか?(こらこら) 

さて,この 「play . batj はこのページ初の 
バッチファイルになるわけです。私はどん 
な言語でも受け付ける!と言ったし,サ 


る 

す 

赛 

演 

を 

る0)容 
化す20内 
期赛 < の 
::初演 nnr 
ザ化のを <フ 
期一容 32 ッ 
U 初夕内 < パ 
/^の一の るの 
S /バレクるるす在 
1ィネッすす®現 
Y; ラエラ止 M 変は 
ドジト停再を時 
7TM ズのををボい 
[7P ィ在赛赛ンな 
01TO ノ現演演テし 
定 
n 指 

e : n b 
V 良 4 
w-inpsco^ 
y 用////// f 
pla 使 


11 


148 Oh! X 1991.2. 










イズも100行ちょっとの大きさであります 
から,もちろんショートプロの範囲内。ば 
っちり OK のプログラムであります。 

UNIX なんかではこういうバッチフアイ 
ルみたいなものがシェルプログラミングと 


かいって結構盛んなジャンルなんですよね。 
たとえば, C シェルなんてのはその名のと 
おり C もビックリというようなすごいシェ 
ルスクリブトの文法になっているんです。 
だから,ガンガンこういうのも送ってきて 


くださいね。 

いま思い出したんだけど,先月に続いて 
今月も XI のプログラムがなかったなあ。み 
んな XI のプログラムもどんどん送ってき 
てくれい。そんなこんなでまた来月。 


(で)のば一てい八ンズ第2部—— (その 3) 


前回はえっと,ぱらぱらばら……,そうか自 
分の視界の話をしたんでしたね。そういうこと 
です,はい(いきあたりばったり )0 とりあえず 
今月は前回の解説の続きです。プログラムリス 
卜も先月号に出てしまってますから,先月号を 
用意してくださいね。 

前回は視界を決めてそのための配列を用意し 
たんですよね。ところがどっこい,視界がある 
からといってその範囲のものがなんでも見える 
わけじゃない。え,なぜかって? そりゃね, 
たとえば目の前にかわいい女の子が立ってると 
しますでしょ。で,普通は洋服があるから,そ 
の先は透けて見えたりしないわけだ。透けて見 
えちゃったら困るでしょ。でへへ。 

……まあ,変な説明ですけど,つまりは手前 
にものがあるときはその奥のものが見えてしま 
ってはいけないわけです。というわけですので 
今月はその部分,視界がじゃまものに遮られて 
いるかどうかのアルゴリズム,いきます。 

|私はぬりかべっ! 

ある壁がほかの壁を遮っちゃう,というとそ 
う,中央の壁が目の前にで一んと立ちはだかっ 
ているときなんてのがありますね。私はぬりか 
ベ!つまり中央の配列で手前側に壁があると 
その後ろにいくら壁があっても見えないんです 
ね。それは中央だけではなくて左右の配列もそ 
うですね。 

配列でいうと(憶えてますよね,先月の配列) 
5番に壁があったら2番や 1 1番に壁があっても 
描く必要がないわけです。うむ簡単簡単。 

しかし,後ろにある壁が遮られるのはそれだ 
けじゃあない。たとえば,図丨のように見えた 
としましょう。 

左側の壁でこちらを向いている壁があります 
よね。こいつが見えなくなるときがあるでしょ, 
中央の壁がないときでも。そうです。図2のよ 
うに「もうひとつ手前の左手に壁があるとき」 

図I 



ですよね。 

つまり「奥の壁のこちらを向いている面は, 
その前の側面に壁があるときは見えない」わけ 
です。右側でも同じ。 

「左右の壁では手前側に続いて壁があるかな 
いかで,奥側の壁の手前に向かった面を描くか 
どうかが変わる」ということになるわけです。 
配列でいうと丨番の配列には壁がなくて,2番 
にもなければ何も描かなくていいけど,もしあ 
ったらその部分を描いてやらなくてはいけない 
わけです。 

アルゴリズムは漬物 

この2つのことを考えながらプログラムの流 
れ,アルゴリズムを作っていきます。え一っと, 
まず,中央に壁がある場合だから中央のどこに 
壁があるかを調べるんだよね。 

え一っと,まず 

|)中央の壁を(配列でいうと4〜 7) 壁があ 
るところを探す 

2) 中央の壁を描く (このとき深さがいくつだ 
ったかを記憶しておく) 

ということをします。 

で,左右の壁だよね。まず,左を見ていくこ 
とにしますが,さっき中央の壁を見たから,さ 
っき壁のあった丨個手前まで(図Iと図2を考 
えたら,配列で7のところに壁があるなら,お 
隣のところに壁があっても関係ないでしょ。だ 
からその前までしか調べないのだ)調べればい 
いわけね。 

3) さっき壁のあった左隣の配列の丨つ手前ま 
で調べる 

で,さっきのその前の壁を描くか描かないか 
を調べる。ま,ここは if で場合分けするのが無難 
かな? 

4) もし,壁があったらそれを表示。壁がなく 
てその前にあったら,前の壁のこちらに向いて 
いる面(縦に長いあれね)を表示する 

図2 


……当然,前にもなかったらなにも描かない 

5) 以上を繰り返す 

でいいかな?うむうむ,よさそうだ。じや右 
側の壁は, 

6) 左に同じ 

でいいわけだ。よかったよかった。 

アルゴリズムを作るときにしっかり考えて作 
っておくとプログラムを組むときに楽ですし, 
逆にいい加減にやっちやってこの段階でバグが 
でると致命的ですんで,しっかりこの段階でブ 
ログラムを組むときのことまで考えてやりまし 
ょうね。ゆっくり時間をかけて。ただし,忘れ 
てしまわない程度に時間をかけて,だけど。 

|やっとプログラム 

という方針で,できたのが先月のリストなわ 
けですね。 

ループを組むときに for ループではなくて 
while ルーブを組んでいるところがあります。こ 
れはなんでかっていうと, for ループというもの 
は条件がおかしくても必ず丨度は通ってしまう 
ものと思い込んでいたからなのです。そして, 
自分が「石の中にいる j ときは左右は関係ない= 
つまリ左右を調べてはいけないということがあ 
るから, for ループではだめ,と思ってしまった 
のです。いやあ,失敗失敗。 

おおそうだ。すっかり忘れていた。中央左右 
について壁の遠さを入れるとその絵を描いてく 
れるサブルーチンを作りました。せっかく絵の 
パターンを作ったんだから,エレガントに呼び 
出そうと思ったわけですね,はい。う一ん,に 
しては CASE 文でだらだら害いちやったら,なん 
か長くなっちやったなあ。う一ん,もうちょい 
検討の余地があったかな? 

しかし,ま,なんとかプログラムが形になっ 
てきたでしょ。 

とりあえず,この時点でやっと配列に0かI 
か2を入れて run するといろいろ描いてくれる 
ところまでできました。なんとなくダンジョン 
ぽくなったでしょ。確認のためにもいろいろ配 
列に数値を入れて遊んでみてくださいね(先月 
の時点でやっちやったかな?)。 

えっと,来月はダンジョンのマップを 20X20 
の大きさで作って,再来月はおまけの処理をち 
ょっとつけて……。げ,やっぱり6回の予定だ 

ったのに丨回足りない . 。こいつはまいった, 

どうにかしなきやだわ。 

まあ,とにかくそういうことでまた来月。て 
やつ!(と頭をネ包えて去る) 




(で)のショートプロば一てぃ 149 






























1 ) お送りいただくプログラムには,住所,氏名,年齢,職業,連 
絡先電話番号,機種名,使用言語,動作に必要な周辺機器,マイコ 
ン歴などを明記のうえ,封書の宛先の最後には 「 Oh!X LIVE 」, 「全 
機種共通システム」,「投稿ゲームブログラム」など,ブログラムの 
内容を明確にご記入ください。 

2) 投稿されるプログラムには詳しい内容を記入した原稿と一緒に 
変数表,メモリマップ,参考文献などもお害き添えのうえお送りく 
ださい。また,お送りいただいた原稿については,当方で加筆修正 
をさせていただくことがあります。 

3) お送りいただくブログラムは最低2回はセーブしておいてくだ 
さい。基本的に同封されたフロッピーディスク,カセットテープ, 
クイックディスクなどについてはご返送いたしませんので,あらか 
じめご了承ください。 

4) ハード製作関係の投稿につきましては,最初は内容のわかる原 
稿のみお送りいただければ結構です。その後,当方で製作物が必要 
だと判断した場合には改めて連絡いたします。 


5) お送りいただいた作品の採用につきましては,掲載号が決定し 
た時点で当方より連絡いたします。特にツール関係,ハード関係な 
どのものにつきましては特集内容などを考慮したうえで採用決定さ 
れますので,結果を連絡するまでにかなり時間がかかる場合があり 
ます。 

6) 投稿いただいたブログラムにバグなどが発見された場合は新し 
いプログラムの入ったメディアと一緒に文害にてご連絡ください。 

7) 掲載されたプログラムに対しては当社規定の原稿料をお支払い 
いたします。また,投稿されたプログラムの著作権などは制作者に保 
留されますが, PDS などとしてネットにアップロードされる場合は 
必ず事前に編集部までご連絡ください。なお,一般的モラルとして, 
他誌との二重投稿または他誌に掲載されたプログラムの移植などに 
ついては固くお断りいたします。 

宛先 

〒108東京都港区高輪 2-19-13 NS 高輪ビル 

ソフトバンク株式会社 Oh ! X 編集室「投稿プログラム」係 


投稿プログラム大募集 


のお知らせ 


•あなたはどのようにしてプログラムに出会いましたか7 

記号の羅列にすぎなかったプログラムリストが突然意味を持った 
メッセージ として読み取れる,機に「プログラム」というも 

のについてなにか納得できるようになる . 。きっかけは雑誌のぺ 

ージの隅に載った小さな小さなプログラムだったのかもしれません。 
またはいくら見直してもエラーの出てくる長い BASIC プログラムかも 
しれません。きっとそのプログラムにある「なにか」に魅かれてリ 
ストを打ち込んだことがあると思います。 

あるソフトを使っていて,なにかの記事を読んでいて,または突 
然に,「こんなソフトがあったらいいな」と思う。こういった小さ 
な動機からプログラムは生まれてきます。あなたのアイデアを埋も 
れさせないでください。私たちはそこにある「なにか」を求めてい 
ます。完成度の高いありふれたブログラムよりも,粗削りでもオリ 
ジナリティの光るプログラムのほうが,さらに誰かの「プログラ 
厶」を生むことになるはずです。 

Oh ! X には毎月さまざまな投稿プログラムが揭載されています。こ 
れらのブログラムは,すべて読者の皆さんが日頃のパーソナルコシ 
ピューティングのなかで作り上げてきたものです。あなたも投稿プ 
ログラムを通じて Oh ! X の誌面作りに參加しませんか? 

•大作歓迎 I 

Oh ! X では過去に40 K バイト程度のプログラムまで誌上に掲載した 
実績があります。また,どうしても誌面に載り切らない作品は付録 
ディスクに収録して配布したこともありました。どうせ誌面には掲 
載できないからと諦めている方,とりあえずご連絡ください。 



X 68000 用 XROTO . X 


全機種共通システム用 BILLIARDS 



X 68000 用力ードゲーム TEN 



MZ -700 用 _ rth 




X 68000 用ハンディイメージスキャナアダプタの製作 


投稿募集要項 


150 Oh ! X 1991.2. 













































SX-WINDOW 

ブロクラミンク 

吉沢正敏♦著 

巳5判変型予価3200円(税込み) 


X 68000 にイベントドリブン方式のマルチタスク • ウインドウ環境を提供する SX-WINDOW 
は, X 68000 に新たな世界を拓くものとして熱い期待を集めている0本書は,この SX-WINDOW 
上でプログラムを作ってみたいと思っているユーザーを対象にした,プログラム作成のための 
ガイドブックである。イベントドリブン,リソースなどのウインドウ•プログラムの基礎知識, 
サンプルブログラムによる具体例,ウインドウ関連のシステムコールー覧など, SX-WINDOW 
上でプログラミングする際のエッセンスを集めている。 

151 


’91年1月刊行予定 



7スタイルの 
入門が: 




















憑卜 


プレゼントの応募方法 

とじ込みのアンケートはがきの該当項目をす 
ベてご記入のうえ,希望するプレゼント番号 
をはがき右下のスペースにひとつ記入してお 
申し込みください。締め切りは1991年2月18 
日の到着分までとします。当選者の発表は 



X 680 M 用 5"2 H □版2枚組 


9, 7 〇0円(税別) 3名 

ファン待望の超厶ズシューテイングゲーム。ゲーセ 
ンでお金を注ぎこんだ人もかなりいるはず。もちろ 
ん移植の出来は期待どおり。シューティングフアン 
必携の1作だ。 


アイレム 006(535)4880 


イメージフアイト 




1991年4月号で行います。 


ポーステック S 03 (3708)4711 


ボピュラス 

プロミ:ストランド 


綱難 
伝説 II 


システムソフト Q 092 (752) 5262 


大戦略卓上カレンター 


お馴染みイースのキャラクターテレホンカ 
ード。大事にとっておくもよし,見せびら 
かしながら使ろもよし,定期入れにしのば 
せてプロマイド代わりにするもよしのテレ 
力だ。 


X 6 M 00 用 
5"2 H □版4枚組 

9,800円(税別) 

3名 


ご存じ「銀河英雄伝説 j の続編。システムもさらに 
パワーアップされ,シミュレーションに慣れていな 
い人でも手軽に遊べる。全自動モードや MIDI 対応 
もうれしいかぎりだ。 


XBMffl ] 用 5"2 H □版 


moo 円 ( 税別) 3名 


すでに持っている入も多いかもし 
れないけど,このプロミストラン 
ドは,ただのブロミストランドで 
はなあい丨なんとあのピータ 
_ • モリニュー氏のサイン入りな 
のだ。つてことで3名の方に。 


日本ファルコム Q 0425(27)6501 

ースの 


テレホンカード 



大戦略シリーズに登場する戦車や戦闘機の 
PHOT □がプリントされた,システムソフトオリ 
ジナルの】991年度カレンダー。これを見るたびに大 


12月号プレゼント当選者 


國 シースルー クロック(新潟県)金原真也(福岡県)升井晋也哲クリスタルポルシェ(長野県) 
宮尾勇(新潟県)前田育男0ジッポ•ライター(福島県)佐藤明広(千藤県)正木崇摁(神奈川 
県)多田早利遠藤幹文(奈良県)山下日出夫0キーホルダー(東京都)鈴木善統(神奈川県) 
鈴木康之(大阪府)土器彰信友広一郎伊藤一成回ネクタイピン(岩手県)今井純二(静岡県) 
玉宮央善(大阪府)二宮善弘(香川県)氏家啓(福岡県)古川智雄回ポーチ(北海道)鈴木賢吾 
(長野県)中沢純 H ボストンバッグ(東京都)内田大輔(愛知県)高橋大介 0 XBAStoCCHECKER 
(京都府)岩成英一 0 C compiler PRO -68 K (広島県)森崎剛 D 3 CANVAS PRO -68 K (東京都)宮 
島誠 ffl 熱血高校ドッジボール部サッカー編(埼玉県)山賀巌太郎(静岡県)遠藤慎弥(沖縄県) 
大城久 

以上の方々が当選されました。おめでとうございます。商品は順次発送いたしますが,入荷状況 
などにより遅れる場合もあります。また,公正取引委員会の告示により,このプレゼントに当選され 
た方は,この号の他の懸赏には当選できない場合がありますのでご了承ください。 


戦略をプレイしたくなる7 


(価格はすべて消費税別です) 


152 Oh! X 1991.2. 












♦X-OVER NIGHT 

[第 9 話] 


(クロスオーバーナイト) 


街の空気 


TAKAHARA HIDEKI 


咼原秀己 


この年末年始に海外に出かけた人は,昨 
年よりも10%ほど増えて45万人以上に及ん 
だそうだ。昨年は海外旅行に出かけた人が 
初めて1年間に1000万人を超えたとか。海 
外旅行ブームの拡大を象徴している。 

特にこの年末年始の場合,休みが散らば 
っていたのでうまく有給休暇や代休を組み 
合わせたりすれば,対象期間が12月22日か 
ら1月6日までと実に16日間に及ぶ,従来 
にないロングな冬休みになった。もちろん 
16日続けて休めるなんて人はそうそういな 
いが,昨年末か今年始めのどちらか一方は 
続けて休みが取れる,ということはある。 

年末年始は狂ったように同じ期間にみん 
なが旅行に出かけるものだが,今回はその 
せいか,やや集中回避。12月22日にオース 
トラリア1週間の旅に出かけて新年は自宅 
だと力%年が明けてすぐに成田に向かい, 
香港4日間の旅行に出かけたとか,従来と 
は違ったパターンの海外旅行を楽しんだ人 
もけっこういたそうだ。 

なにしろ政府をあげての長期休暇奨励と 
いう奇妙なご時勢。いままでほど必死にな 
って働いてはいけないそうなのである。た 
とえば「丸の内の不夜城 j といわれる,コ 
ンピュータ業界で有名な某社。仕事は3年 
以上先の分までたまっているらしいのだが, 
世間体があるのを気にしてか,深夜残業や 
休 n 出勤は極力しないように,との通達が 
出されている。 

この会社に限らず全般的な話だが,無趣 
味で出不精な人が突然,長期休暇などを手 
にしては,逆に困るのである。することが 
まずない。 

そんな人にとっても問題なく効果的に時 
間を使えるのが旅行だ,という解説を聞い 
たことがある。確かにそのとおりだろう。 

もっとも日本人は元来,旅行好きだとい 
う説もある0とにかく映画,テレビ放送, 
出版を問わず,トラベルものなら当たりや 
すい!:いわれているのは常識。昨年30年間 
続いて幕を閉じ話題となった「兼高かおる 
世界の旅 j もそうだが,「新世界紀行 j にし 
ても「世界ふしぎ発見」にしても,この種 
の番組の人気の高さがわかる。 


もうひとつの人気ネタ,ミステリーとド 
ッキングすると,ヒットする確率はさらに 
高まる0出版界では「トラベルミステリー」 
などと呼ばれており,西村京太郎氏から内 
田康夫氏まで作家側もはっきりと意識して 
作品を量産している。 

こうした作品が2時間ドラマになると, 
「中国殺人行脚萩〜広島〜姫路,花の中 
年奥3人組が次々と遭遇する女子大生温 
泉連続殺人事件旅先でまき起こる恐怖の 
……」といったやたら長い題名のドラマに 
化ける。 バカバカしい 感じはするのだが, 
知らず知らずのうちに見終わっていること 
があるから,人のことは笑えない。 

お正月映画として今年も「男はつらいよ」 
シ リーズが上映されている力 ? ,トレン デイ 
な洋画に劣らず人気があるのは,寅さんも 
やはりトラベルものの典型だから力、 

◊ 

そのお正月映画。 

「ディック,トレ イシ —」,「卜ー タル* 
リコール」,「ロッキー 5」, 「ネバー エンデ 
イング ストーリー第2章」となかなか 豪華 
な布陣が揃っている。「ネ バー エン デイ ング 
ストーリー第2章」を除けば,昨年夏の米 
国興行街を賑わせた作品がズ ラリ と揃って 
いる。 ここに「バック.トウ •ザ -フュー 
チヤ ー Part 3」 や 「アラ クノフ オビア」, 
「ゴースト」 が加わっていたのだから,昨 
年夏の米国映画市場が大混戦の デッ ド ヒー 
卜 になったのは無理ないところ。 

レースを制した伏兵中の伏兵「ゴースト」 
は我が国ではひと足早く秋に公開ずみ。確 
かに快作だったが,米国じせよ日本にせよ, 
よくあれだけ動員できたものだといまだに 
感心する。 

昨年夏の米国公開映画の中で最も期侍し 
ていたのが,ウォーレン•ビーテイ監督兼 
主演の「デイ ック • トレイ シー」。「ゴース 
卜」に食われはしたものの,あれだけの強 
棻揃いの時期に上位をキープしていた(最 
終的には「トータル*リコール」に次ぎ3 
位)のだから,ヒットしたことは間違いない。 

で,見た感想なのだが,それほどではな 
かった。というか期待外れだった。 


見終わったあと,「バットマン」と類似し 
た感想を抱いてしまった。双方とも舞台と 
なっているのは架空の暗黒街で,街を支配 
する悪党一味と戦う正義の味方,という物 
語。禁酒法時代の頃であろうか,おそらく 
同じ頃の米国暗黒街をモデルにしているよ 
ぅだ。 

この街の模様が両作とも実に似ていた。 
おまけに主人公が活躍するのがほとんど夜 
で,ライティングまで同じタッチときては 
感想が似てくるのはしかたないかも。 

とにかくこの街の舞台作りや演出がしっ 
くりこず,印象をかなり左右された。この 
種の米国人の論評は見たことがないためな 
んともいえないが,もしも米国人には自然 
な感じだとすれば,「街の空気」に対する文 
化的な日米の違いがあるのだろう。 

街の空気,つまり街並みから雰囲気,さ 
らに生活する人々の息づかいまで含めてそ 
う書いた力 5 ',この違いは重要だ。今まで一 
度も行ったことがないはずの場所に親しみ 
を感じる場合,まず似た空気の場所に行っ 
たことがあるはずだという。日本人が日本 
中,どこに行ってもさほど違和感を感じな 
いのはそのせいで,逆に欧州の人が住む国 
を変えてもさほど気にしないのはそのせい 
だろうか。 

ここに時代考証が加わってくると,もう 
どうしようもない。時代劇は論外にしても 
たとえば日本の大正浪漫の街並みを米国人 
に見せてもしっくりこないはず。ちようど 
「デイツク • トレイ シー」 や 「バツ ト マン」 

はその逆だったのだろう力、 

もっともこうした理由で映画の印象を左 
右されるようでは,本来はまずい。そう思 
って 「ディック*トレイシー」を回想す る 
のだが,マドンナが妙にハマっていた以外 
は,どうも印象が弱い。ということは……。 

「ディック.トレイシー」以外のお正月 
映画はまだ1本も見ていない。忙しくて試 
写状を手に入れる工作をすっかり忘れてい 
たこと力す,ここにきてたたっている。 

ぼくの場合,常設映画評コーナーを持っ 
ているわけではないので請求しないと映画 
会社は試写状をくれないのだ。 


X-OVER NIGHT 153 






第 45 回知能機械概論 お茶目な計算機たち 


感涙もののマシン語プログラム 


L マシン語に興味をもつ少数派/ 

パソコンが一家に 1台,さらにひとりに 
1台というまでに普及してくるにつれて, 
パソコンの 動作原理 その ものに興味を 持つ 
人は 全体に対する割合としては徐々に少な 
くなってくると思われます。 「パソコンの ア 
ーキテクチャなどはどうでもいい,それを 
どのように使うかが問題である」という思 
想 こ そが ハ。ソコンを もっともっと多くの人 
に普及させるためには必要なのですから, 
パコソンの メカ その も のに 興味をもつ 人が 
多くならないのはしかたのないことかもし 
れません。 

そのような思想を全世界に普及させよう 
としている旗手,その人がスティーブ=ジ 
ョブスであります。彼については先月紹介 
しました。でも逆に,そういう思想が普及 
してくる時代になればなるほど,アーキテ 
クチャやマシン語など,ブラックボックス 
をブラックボックスとしてはいられないよ 
うな姿勢の重要性が増してくると思われま 
す。 

今回の記事は,特に本誌の’90年7月の特 
集「マシン語への第一歩」をがむしゃらに 
読んだようなタイプの人たちのために書き 
たいと思います。 

L コンパィラ自動作成の夢7 

ソフトウエア危機ということが大声で叫 
ばれるようになってもうずいぶんと時間が 
経過しているわけですが,一向にその危機 
はきていないようにも思われます。という 
のは間違いで,実際には(特に日本では) 
ソフトウヱアの技術者が膨大に不足してい 
るのです。 

新しいマイクロプロセッサチップを完成 
させるまでの期間はずいぶんと短くなって 
きました力 ? ,よいコンパイラはなかなか出 
来上がりません。コンパイラの研究で自動 
的にコンパイラを作成するというアプロー 
チはひと頃はずいぶんと流行りました。要 
するに,対象とする言語の記述(どういう 
構文を持ち,それぞれの構文でどういう処 
理をし,データタイプは何があるなどとい 


うことを表現したデータ),それから実行す 
るプロセッサの記述(どういう命令を持ち, 
どういう処理をし,レジスタは何ビットの 
ものが何本あるかなどというデータ)を入 
力すると,自動的にお望みのコンパイラが 
出来上がってしまうというすばらしい話で 
す。 

もし,そういう コンパイラ 作成 ツール (コ 
ンパイラ ジェネレータ) が一 度できてしま 
えば,もう コンパイラの ことでやることは 
なくなってしまうはずでした。新しい言語 
やプロセッサができても,それを記述する 
データを作成するだけで, インスタントに 
新しい コンパイラが 出来上がるのです から。 

ところ力す,実際のところそういう万能ツ 
ールはこの世には存在しません。ただし, 
実際問題としては,本当に作ることができ 
ないというわけではなく,手で書いた優れ 
た コンパイラ ほど,よいコードを吐き出す 
よい コンパイ ラが自動的には作れないとい 
うほうが正しいかもしれません。このこと 
は,新しい言語や プロセッサ アーキテクチ 
ャを完全に記述することが困難であるとい 
うことともかかわってくる問題といえまし 

ょ5。 

L ノ \ 。夕ーソン 教授の責任 / 

コンパイラジェネレータ実現へのアプロ 
ーチは決して軽んじてはいけません力す,夢 
のような話にいつまでも振り回されていて 
はいけません。ソフトウェア危機を解決す 
る方法はた AT ひとつ,ハードウェアがソフ 
トウェアのことをもっと考えること,と思 
われてなりません。いくら,ただ速いハー 
ドウェアを作ったって,結局は虚しいこと 
になるというわけです。 

68000, 68010,68020……,あるいは 
8086, 80186,80286……などというマイク 
ロプロセッサのシリーズにおいて,新しい 
チップが登場するたびに,新機能一覧の中 
にはいつも「高級言語のサポート」という 
項目が入っていました。ところが,実際に 
現場でプログラミングしている人たちは, 
「新しいチップが登場するたびに逆にプロ 
グラミングがだんだんと難しくなってき 


た」と僕にこぼしたものでした。 

命令やレジスタやアドレツシングモード 
が増えれば増えるほど,少なくとも,選択 
肢が増えてい〈わけで,どれを使うかとい 
うことの重要性は増す一方です。また,そ 
の選択自体の仕事も確かに増えるわけです 
から,そうなったのかもしれません。最適 
なものをうま〈選べば,速度も増し,マシ 
ン 語もコ ンパク トになるのでしよう 力す。 

ところ力す最近の マイクロプロセッサは 一 
体どうなっているのでしようか?目を覆 
いたくなるような現実があるのです。コン 
パイラなどぉ構いなしという RISC タイプ 
の マイクロプロセッサが 一世を風靡してい 
るのですから。 RISC 提唱者(首謀者)のパ 
ターソン教授本人が,別にコンパイラは誰 
かひとりが書けばいいのであって,皆さん 
にご迷惑はかけませんよ,マシン語など書 
けなくても,いいコンパイラでどんな低レ 
ベルの(ハー ドウヱアに密着した)処理で 
も書けるのですと言って,ソフトウェア危 
機に対して堂々とシラを切ったわけです。 

ところが,どうでしようか?うちの研 
究室など SPARC チップのマシン語に苦し 
んでいる学生が続出しています ( annul ビ 
ットがどうのこうの,これは delay slot で 
……)。「パターソン教授,どう貴任をとっ 
てくれるのですか?」と言いたいところで 
すが言いません。一般に,大学の研究者な 
ど極論すれば,世の中がどうなるかより, 
自分の論文の数を増やすほうが大事という 
面が少なからずあるし,それもしかたがな 
いという面もあるようにも感じますので。 

RISC チツプのワークステーションに 
UNIX を敝せ, C コンパイラを動かすだけ 
でこの先もよいというならば,文句は言わ 
ないのですが……。 

L 乗算フ□グラムに潜むもの/ 

話がタネタネ化したように思われるかも 
しれませんが,とりあえず言いたいことは, 
「さしあたってのところ, マシン 語はやは 
り捨てがたいものがある」という簡単なこ 
となのであります。 

ここで,話がいきなり具体的なことにな 


154 Oh! X 1991.2. 
















Arita Takaya 有田隆也 


り,ひとつの小さなマシン語のプログラム 

(8 ビットと8ビットの乗算)を紹介しま 
す0なんでもないプログラムといえばそう 
なのですが,プログラムを作った人の気持 
ちが伝わる人には伝わるでしよう。僕が行 
っている大学の2年生用の実験の中で使用 
しているプログラムですが,僕自身が作っ 
たわけではありません。 

ふつう,マシン語で 乗算プログラムを 書 
かなくてはならなくなったとき,まずしな 
ければならないのが, マシン 語命令一覧表 
を調べることでしよう。そして乗算命令が 
なかった場合には,乗算をいくつかの命令 
で表現することになります。 X 掛ける Y を 
マシン 語の加算などを使って実現しようと 
するとき,まずだれでも考えるのが, X を Y 
回足せばよいだろうということでしよう。 
実際,そのようなプログラムは,冒頭に紹 
介した本誌の特集の中の毛内さんの記事に 
も載っています。 

ただし, X を Y 回足すプログラムは大変 
わかりやすいという特長がある反面,実行 
スピードという点で満足のいかないものに 
なっています。なぜならば,運が悪いとき, 
たとえば Y が255だったりすると,ループを 
255回も回らなくてはならなくなるからで 
す。そう考えると, XI : Y を比較して, X が 
Y より小さいのならば, X と Y を入れ替えて 
Y を X 回足すという方法がまず思い浮かび 
ます。でもここでは,もっと一気に速度を 
向上できる画期的なプログラムを紹介する 
ことにしましよう。プログラムをリスト1 
に示します。 

この プログラムの 意味をここで詳しく説 
明することはしません。苦労してなんとか 
意味がわかったときのうれしさを味わって 
ほしいからです。また,マシン語に強い人 
には説明は不要でしよう。でも,命令の意 
味だけは書いておかないとだめだと思いま 
す。 

このプログラムは8085 (8080 を少しだけ 
拡張したもの)というマイクロプロセッサ 
用のアセンブリ言語で書かれています。以 
下に簡単に命令の意味を書きます。 

氺ホホ 


MVI B ,00 H 

B レジスタの内容を0にする 
MOV C,A 

A レジスタの内容を C レジスタにコピ 

LDA ( KAZU 1) 

メモリの KAZU 1 番地の内容を A レジ 
スタに コピー 

DAD H 

HL の内容 ( H , L 2 つのレジスタを連 
結して16ビットとみなす)と HL の内 
容の加算(つまり, HL を2倍するこ 
と=1ビット左シフト) 

DAD B 

HL の内容と BC の内容を加算 

JNZ 

ゼロフラグがゼロなら指定番地にジヤ 
ンプ 

JNC 

キヤリフラグがゼロなら指定番地にジ 
ヤンプ 

SHLD ( KOTAE ) 

KOTAE と KOTAE +1 で示される番 
地に HL の内容を書き込む 
* * * 

このプログラムのミソは8行目の DAD 
H ということができるでしよう。計算の原 
理そのものは筆算で乗算をするときと類似 
していますが,筆算とは違って大きいビッ 
卜から調べているので,この命令ひとつで 
2つの動作(乗数のビットの切り出しと途 
中結果のシフト)がなされているのです。 

さて,このプログラム中のループを1回 
実行するときに実行される命令数は分岐命 
令も含めて4あるいは5という少なさであ 
り,しかもループの回数は乗数がいくつで 
も (255 でも)8回でいいという高速性を誇 
っています。ループ1回で平均 4. 5命令実行 
するとして36という命令数を実行するだけ 
なのです。ちなみに , Oh ! X に載っていた 
やり方では,仮想 CPU のプログラムでは, 
乗数が128とすると,ループを構成した実行 
命令数は384命令になります。 

実際に速度を厳密に考えるには,単に実 
行された命令数を数えるのではなく,マイ 


クロプロセッサの データシー トで各命令の 
実行時間(ステップ数)を調べ,求める必 
要があります力 ? ,そこまで凝る のは 少し大 
変なことになります。 

しかし,このプログラムがベストなもの 
ということはできません。まだまだ最適化 
することができます。たとえば,乗数が小 
さいときにも必ず8回ループを実行するこ 
とが気になります。ほかにも改良すべき点 
はあると思われますが,どんな乗数,被乗 
数を持ってきても,いつも最小の時間でで 
きるというプログラムを構成するのは至難 
の技ということができるでしよう。平均(期 
侍値)を小さくするような改良ならば,考 
えられるでしようが。 

匕 装の滅味 / 

人の手でなければできないような最適化 
はまだ案外と残っているものです。そして 
最適化された プログラムを 見るたびに, 僕 
は心の中で涙を流すのであります。それは, 
「よくもまあ苦労して1命令少なくしたな 
あ」 という プログラマへの 賞賛だけでなく, 
実は,「いずれこのような最適化の技術も定 
式化されコンパイラに組み込まれるのだろ 
うなあ。結局このような努力は無駄なもの 
とされる日もくるのだろうな」という涙の 
ちよちよぎれるような複雑な気持ちなので 
す。ですから,「さしあたってのところ,マ 
シン語はやはり捨てがたいものがある」と 
あえて書いたのです。 

参考文献 

毛内俊行,「マシン語ってなあに? j , Oh ! X 1990年7 
月号, pp . 47-51 

リスト1 乗算プログラム 


1 


MVI 

B ,00 H 

2 


MVI 

L ,00 H 

3 


し DA 

( KAZUI ) 

4 


MOV 

C,A 

5 


し DA 

( KAZU 2) 

6 


MOV 

H,A 

7 


MVI 

A ,08 H 

8 

LABEL 1 

DAD 

H 

9 


JNC 

LABEL 2 

10 


DAD 

B 

II 

LABEL 2 

DCR 

A 

12 


JNZ 

LABEL 1 

13 


SH し D 

( KOTAE ) 


(メモリの K AZU I 番地と K AZU 2番地の内容の乗 
算結果をメモリの KOTAE 番地に格納) 


知能機械概論 155 







m56u 


猫とコンピュータ 


襄し総)# RIP © ギフト 


TaKazawa Kyoko 

高沢恭子 


厳しさのない,やさしい冬の日々がすぎ 
てゆく。そのぶん,日差しはぼんやりとく 
すんでいる。季節がその季節らしさを見せ 
てくれないのは気がかりだが,わが子が受 
験する冬は,おだやかなほうがありがたい 
なんて思う。 

それでも,気候の不順とは別に,東京が 
年々あたたまっているという話を聞くと, 
人並みに追想することもある。自分が中学生 
のころの,あの庭一面の菊の根もとで,黒 
々とした土を押し上げていたガラスのよう 
な霜柱や,コタツに入っていても背中まで 
押し寄せてきた冷気は,どこへいってしま 
ったのだろうと。 

受験の季節がすこし冷えびえとしている 
のも,あとにおとずれる喜びと旅立ちの春 
をいっそう輝かしいものにしてくれるため 
かもしれない。それなら,冷たさに澄み渡 
る晴天の日も,やっぱりきてほしい。 

電気のタタリ 

使用4年で火花を吹いて黒コゲになって 
しまった CRT , PC — KD 851 のことを FBI 
- NET にアップロードしたら,テクニカ 
ルライターの「ぶん」さんが,こんなふう 
に教えてくれた。 

「たぶんそれは, CRT のフ イードバ、ッ 
クトランスが,磁束もれを起こしている 
ものと思います。そして, シャーシと トラ 
ンスの間で放電しているため,バチバチと 
いう音が出ているのでは……。はっきり言 
ってトランス交換しかありません。 4年と 
はかなり短い気がします。よくあるのは, 
家庭用の TV で,7,8年使用しているも 
のに,この傾向があります。最近は部品代 
をけちっているので,寿命が短くなってい 
るのでしよう力。 

「バイク,くるま」ボードのシグオペ, 
lbb Oh! X 1991.2. 


「 Impulse 」 氏の感想は,「どんな感じだ 
ったか想像するだけでちよっと怖いですね。 
私のは KD -852ですが, PC -8801 を使っ 
ているときからですから,もう5年ぐらい 
になるかのかな? ここ10日くらいは PC 
の電源入れっぱなしで, CRT もつけたまま 
ってこともありますから,いないときにハ 0 
チパチやられたらこまるなあ」 

「昔, Xlturbo のデイスプレイが,と 
きどき,『ぱちん!』とかいうことはあり 
ました。ほんの一瞬で, CRT 中央に横に1 

本線が走って . また元にもどります。怖 

かったけど,ほかに影響がなかったんでほ 
っときました〇オレンジ色の火を吹くコン 
デンサの話も聞いたことがある」というの 
は「ちゃがま」氏。 

「 SHUN 」 君は,「うちの PC —100 の CR 
T も,電源入れたら火を吹いたんだな…… 
修理に出したんだが『修理不能』と言われ 
て,結局,もうカラー CRT が手に入らな 
いから, モノクロで がまんしているのだっ 
た」 0 「 Momi 」 氏も,「うちのテレビは10 
年近い。う一む,これはあぶないかなあ。 
さすがにヴオリ ユーム がガリ オームに なっ 
てるけど」。 

当の黒コゲ CRT は,すでに「粗大ゴ 
ミ」として区役所に引き取りの供頼をすま 
せてあった。「ぶん」さんは「放電を助け 
ているホコリをとりのぞけば,だましだま 
しもう少しは使える」と言うけれど,いま 
にも爆発しそうな CRT と向き合ってキー 
を叩く勇気はおこらない。それに,じつは 
背中をはがして中を調べたり,通電させて 
みたりさんざん遊んだあげく,ネジ類をい 
くつも失っていたのだ。 

XC -1498 CII という三菱の CRT がきて 
からも,黒コゲ君は区役所に引き取られる 
まで,部屋の隅におかれていた。 


0: 

お世話になったあの方に,といろ感謝の気 
持ちをこめて贈るお歳暮。しかし,いまや 
それもパソ通で注文する時代らしい。少々 
味気ないが,忙しい年の瀬には最適か。と 
思いきや,そラは問屋が卸さないのだ。 


学士会館で「きまこん • フォーサイト10 
周年記念会」が行われたとき,コンピュー 
タマンのササキさんに黒コゲ CRT の話を 
したら,「4年は早すぎるから抗議したほ 
うがいいですよ」とすすめられた。すると 
そばからカワムラ先生が,「私は本体が火 
を吹いたことがあります。あれは怖かった 
ですね」なんておっとりした顔で言うので 
おどろいた。 

昔,そうじ機や蛍光灯のスイッチを入れ 
たショックで,夫の入力中のデータをすべ 
てとばしてしまったことがよくあった。と 
ても喜劇的な事件なのだが,何かの衝撃で 
ストップしてしまうデリケートさは,コン 
ピュータらしくて,なっとくできる思いが 
あった。それにくらべると,疲れて火を吹 
くというアクションは,まったく漫画的で 
はあるものの,パソコン崇拝で忘れられて 
いる電気の怒りのようでドキリとする。 
それにしても,「文豪」の墜落, CRT の放 
電,どうもこんどは PC — 9801があやしい。 
わが家の OA 機器軍団は反乱をはじめたの 
だろうか。 

急がばパソコン7 

2つのマイコンクラブ合同の10周年記念 
会は,幹事役の夫の補佐として私も出席さ 
せてもらった。 オープニングのスピーチで 
は,それぞれのクラブの創始者が,変化に 
満ちた10年の思い出を淡々と語ったが,そ 
れがかえって印象的だった。 

当夜はエヌ•アイ•エフ ( NIFTY-Ser 
ve ) のナカムラ常務をお招きし,「バソコ 
ン通信の夢」と題する記念講演をしていた 
だいた。これからパソコン通信はもっと真 
価を発揮していくであろうし,そのひとつ 
として,障害やハンデを持った人たちにと 
って,その有益さが発揮できるものであり 











たい0また,ビジネスで長く滞在していた 
スペインでの実感から,スペイン人とは対 
照的に,余暇の生かし方のまったくへ夕な 
日本人にとって,パソ通は創造的な余暇を 
過ごすひとつの希望になるのではないかと 
いったお話だった。 

秋は中学校も行事の季節。学芸発表会, 
区の陸上大会,創立10周年記念式典,日曜 
参観。もちろん,その間に中間試験,期末 
試験があり,宿命の内申決定となる。 

トオルの予定と夫の スケジュール, それ 
に自分の計画と,3者が関連しあって,秋 
から冬にかけての日程の調整はとくにむず 
かしい。気がついたらお歳暮の シーズンに 
なっていたが,20分もあれば行ける日本橋 
のデ ハ。一 卜に,なかなか出かけられない。 

その日本橋の老舗(しにせ)デパートの 
ひとつである T 店から,パソコン通信で贈 
答品の依頼ができる「電子カタログ」が, 
今年も届いた。1年前の暮れに申し込み 
をしたとき,無料のソフトがはじめて送ら 
れてきた。さっそく利用しようとためして 
みたのが,あまりの使いにくさにすぐに見 
切りをつけて,現場のデパートまで出かけ 
て用事をすませてしまった。それから夏の 
お中元,今回のお歳暮と,ソフトが送られ 
てきたのは3回目になる。 

いままでに,商業通信ネットを通じて文 
具などのオンラインシヨッビングをしたこ 
とはあるけれど,デパート独自のネットワ 
ークを直接利用したことはなかった。それ 
というのも, T 店のソフトに失望していた 
ためだが,ほんとにいそがしくて時間がつ 
くれないこんなときこそ,一度はためして 
みるチ ヤンス かもしれない。 

そこであらためて, T 店の「電子カタロ 
ダ」を手にしてみた。1年前に,グラフイ 
ック画面などのスピードの遅さに耐えられ 
なかった記惊があるが,あとはすっかり内 
容を忘れている 3 

エンドレスのソフト 

3 枚のフロッピーデイスタは, 1 枚がシ 
ステムディスクで,あとの2枚がデータデ 
イスク。ただし,システムディスクには, 
MS-DOS のシステムと日本語入力 FEP が 
入っていないので,これから始めな〈ては 
ならない。 

やれやれと 思つ ていたら, マニュアルの 


いちばん最初に, 「マニュァル 内容の追加 
修正がある場合には, システムディスクの 
な かの README . DOC という ファイル 
に記載してありますので,必ず最初にご覧 
ください」とある。 

指示どおりにすると,修正があるわある 

わ . 20力所あまり。しかもファンクシヨ 

ンキーの変更など大きな訂正が半分以上で, 
スタートからびっくりさせる。これを確認 
したり,プリンタで記録をとったりで何分 
もかかった。 

実行ディスクへのイ ン ストールのとち ゆ 
う,こんどは「必要なファイルのうちコピ 
一できなかったファイルがあります」とメ 
ッ セージが出るので,やりなおしてみるが 
同じことがくりかえされる。しかたなく無 
視して FEP を組み込む。少し強引にやら 
ないと先へすすめない。 

これでやっと実行の運びとなる。モデム 
を ON にした状態でディスタを起動 。 「T 
店 PCNETWORK 」 というタイトルと 
目次がカラーグラフィックであらわれた。 
これから マニュアルに した力 ? って,会 M 登録 
や商品の注文が始まるはずなのだが,そう 
かんたんにはいかない。 

会員登録の画面では,氏名,性別,年齢 
などを入力するとちゅうで,どうしても記 
入できない欄がある。素通りするうち何回 
H かに,なぜか記入ができる。 

商品の一览では,選んだ画面が不必要と 
わかっても元の幽面にもどることができな 
い 。 ESC キー や ファンクシヨンキーを か 
たはしから叩いてみてもダメ。何かを選ん 
でつぎに進むことしかできず,「注文」の画面 
まで連れて行かれる。そこではじめて「発 
注」力 1 「目次」かを選べるので,元のタイ 
トル 画面に帰ることができる。これはたい 
へんな時間のロスだ。 

商品についても,項目だけではわからな 
いから,ちょっと内容を知ろうとしてむや 
みにキーを選択すると後悔する。のし紙を 
デザインした装飾幽面や,商品のイラスト 
がグラフィックであらわれて,これがけっ 
こうな時間がかかる。しかも前述のように 
画面のストップや取り消しはいっさいでき 
ないのだからまったく困ってしまう。 

プログラムを進めていくとちゅう,何回 
となくハングし,ひんぱんにリセットをく 
りかえした。四苦八苦して商品を選び出す 



までの,ハラハラの長い不安な道のりは, 

まるで RPG のようだ。 

注文の入力もひと波乱だった。単価,数 
量,金額と,順に記入を終えてリターンを 
するたび,ひとつ前に入力したものが変化 
してしまう。いったい正しく記入できてい 
るのかどうかわからない。 

準備の段階からここまでで,すでに1時 
間半が過ぎた。地下鉄での H 本橋往復,商 
品をじっさいに見ながらの注文が,頭の中 
で常に並行している。 

まがりなりにも沈文の準備が嘴い, T 店へ 
のアクセスとなる。 flO キーでオートダイ 
ヤルされ,データ送信が行われる。通話は 
フリーダイヤルなので,、 1 〗方は無料。 

このソフトは丁店の依頼で某社が制作し 
たものらしいが,どう考えても習作の段階 
としか思えない。何人の人がこのソフトを 
希错したか知らないが,環境設定だけお 
っくうなのに,走りはじめると事故つづ 
き,カタログの内容はおァソビ同然。天ド 
の本橋 T 店はどう考えているのかな。 

データ送信が終わるとメニュー_而にも 
どり,「注文の確認 j のキーを押すとふたた 
び センターに つながる。きようの RPG の 
戦紐はどんなものだったのかと画面をみつ 
めると,「本 U はメンテナンスのため,サ 
ポートセンターに お問い作わせください」 

と m 話番号が示されている。電話をすると 
時間外のためか応答なし。 

おまけがひとつ。最後に通信終了のキー 
をセレクトすると,いったん问線は切れる 
が,ふたたびセンターにつながり,モデムを 
OFF にしないかぎり通信状態は終わらない。 

猫とコンピュータ 157 

























PENGUIN: 删 

ぺ•ン•ギ•ン•情•報•コ • 一 •ナ • 一 


NEW PRODUCTS 


高速プリンタ搭載 

WD - A 351 

シャープ 



シャープは書院ラップトップモデルの最 
高級機として 「 WD - A 351」 を発売した。 

「 WD - A 351」 は業界最高水準の82字/秒 
の高速高精細プリンタを搭載している。ま 
た,新たに明朝体,毛筆体,ゴシック体も 
内蔵の「トリプノレス ーノヽ。ーアウトラインフ 
ォント」を内蔵してぉり,明朝に加え,毛 
筆体,ゴシック体も,名刺に使える小さな 
文字から垂れ幕やポスターに使える大きな 
文字まで,104種類の文字サイズで印刷する 
ことができる。 

そのほかの特徴としては, 

• 多彩な印刷が可能な「ぉもしろ印刷」 

• 手軽に枠組み文書や名刺が作成できるパ 
ーソナル DTP 

• 書院カルクと連動したカード型データべ 
ース書院パーソナルカード 
• 荧換効率をさらに商めた約17 . 6万例の AI 
- V 4 辞書 

•同社のハイパー m 子手帳ともデータの共 
用が可能な電子手帳通信 
• MS - DOS コンバータ,通信ソフトを装備 
し,パソコンとデータの共用が可能 
などの機能を備えている。 

価格は238,000円(税別)。 

く問い合わせ先〉 

シャープ ㈱ 003(3260)1161,06 (621) 1221 
158 Oh!X 1991.2. 


フルカラーファクシミリ 

JX -5000 

シャープ 



JX-5000 


シャープは最大 A 4 サイズまでのフルカ 
ラー原稿を高速かつより忠実に送受信する 
ことができるフルカラーファクシミリ 「JX 
-5000」を発売した。 

「 JX -5000」 は世界で初めて送受信一体型 
デスクトップサイズを実現。カラースキャ 
ナ分野で培った同社独自のデジタル画像処 
理技術と新開発の高_質昇華型フルカラー 
プリンタ,ケイデイデイテクノロジーとの 
共同開発による独自の画像圧縮伸長技術, 
さらに専用の高速ァダプタなどの要索技術 
が駆使されている。 

送信読み取り部には縮小光学系 CCD イ 
メージセンサが採用されており,凹凸のあ 
る原稿も読み取りボケなく読み取ることが 
できる0また,一走査でフルカラーを読み 
取るので色ずれの少ない鮮明なカラー画面 
データを得られる。 

さらに,原稿の拡大/縮小電送を可能にす 
るズーム機能や通信中の画像の乱れを自動 
修正する ri 勋誤り再送 ( ECM ) 機能など各 
種機能も装備している。 

なお,本製品は共同開発先であるケイデ 
イデイテクノロジーからも同時発売の予定 
となっている。 

価格は3,700,000円(ァダプタ 「 JX -500 
FX 」 を含む,税別)。 

く問い合わせ先〉 

シャープ ㈱ S 03 (3260) 1161,06 (621) 1221 


音声画像データべース 

THE 近江商人 

ビットァート 

ビットアートから, X 68000 を利用した音 
声画像処理データベースシステム 「THE 
近江商人」が発売された。 

「いつでも誰にでも使えるコンピュータ」 
ということで,画像情報処理,そして音声 
情報も同時に簡単に処理することができる 
ようになっている。 

用途としては, 

•観光,窓口案内などのディスプレイ 
• 映像の データベース 
• ポジ-ネガフイルムの管理 
• 導入研修などの各種マニュアル 
•不動産,中古車販売などの データベース 
• 各種店頭販売促進ツール 
などが考えられ,将来には ISDN 化するこ 
とも可能。 

価格はシステムにより,約300万から400 
万円 ( X 68000 とのセット売り)になる。 

く問い合わせ先〉 

㈱ ビットアート Q 0775 (52) 7190 

八ィパー電子手帳用 1 C 力ード 

PA -9 C 30/5 C 01/5 C 02 

シャープ 

ハイパー 電子 システム 手帳 「 DB-Z 」 用力 
ードとして,3種類のカードが発売される。 
ラインアップは以下のとおり。 

〇英和 • 和英辞典カード 「 PA -9 C 30 j 
辞書の中で敁もよ〈使われる英和/和英 
辞典を1枚にまとめ,本格的な辞嘗にも匹 
敵する約23万語を収録,さらに学習に便利 
な発音記号も収録している。また,大画面 
を生かした見出し語リストー覧表示により, 
調べたい語をいままでのようにいちいち1 
語1語順送りしなくても,見たい語にタッ 
チするだけで内容を見ることが可能なので, 
検索時間を大幅に短縮できる。 

綴りのわからない単語の スペルを 「?」 











[axMar] 





PA-5C0I PA-5C02 PA-9C30 

で置換し,該当する単語を探すワイルドカ 


ードサーチ機能, スペル 数がわからなくて 
も最初と最後の スペルを 「〜」でつな ぐ だ 
けで該当する単語が探せるブランクワード 
サーチ機能,そしてビジネス用語,日本文 
化特色語(和英のみ),慣用表現集(和英の 
み),人名,地名の各分野のジャンル別索引 
なども装備しているので,検索しやすくな 


つている。 

そのほかにも和英辞書で検索した英単語 
をもとにして,英和辞書と同様に詳しい意 
味や熟語などをそのまま調べられる,逆翻 
訳機能などを搭載している。 

価格は18,000円(税別)で,2月10日発 


と,1手1手確認しながら観戦できる「手 
動」モードの2つのモードで実力を持った 
棋士同士の熱戦を手軽に電子手帳上に再現 
する。 

また,収録された対局の全戦で「次の1 
手」を推察して打ち,その正否で棋力を判 
定する「判定」モードで実力を試すことも 
できる。中級では5つのヒントの中から上 
級はノー ヒントで棋士の打った次の手を選 
ぶ。1手ごとに正否がわかるほ力%対局終 
了後に実力が画面に表示される。7,000円。 
〈問い合わせ先〉 

㈱ ヘクト 003(5275)5481 

CCI 1 T V .42 bis 搭載 

MD9BFS5V 

オムロン 

オムロンは 「 MD 96 FS 5」 をバージョンア 
ップした機種, 「 MD 96 FS 5 V 」 を発売した。 

「 MD 96 FS 5 V 」 は,あらたに国際標準デ 
—夕圧縮機能として CCITT (国際電信電話 
諮問委員会)が昨年勧告した CCITT V .42 
bis を標準搭讀役している。 

主な特長は以下のとおり。 


• 国際標準通信規格である CCITT V .32 を 
サポートしているので,本格的な9600 bps 
全二重通信を実現し, V .32 を搭載したモデ 
ム同士で通信が可能。 

• エラー訂正機能として MNP クラス4と 
CCITT V .42 を標準搭載している。 

• データ圧縮機能に MNP クラス5と 
CCITT V .42 bis を標準搭載しているので, 
ソフトなどの工夫なしで実効通信速度が 
19200 bps まで向上。 

価格は198,000円(税別)。 
〈問い合わせ先〉 

オムロン ㈱ 303(5488)3219 



MD96FS5V 


AMIGA 内蔵 CDROM 

CDTV 


コモドール 


売予定。 

く問い合わせ先〉 

シャープ ㈱ S 03 (3260) 1161,06 (621) 1221 
〇「ハットリス」カード 「 PA -5 C 01」 

フアミコンや業務用ゲーム機で好評の 

「ハッ トリス」カード。この 「ハット リス」 
は「テトリス」の作者アレクシィ.パジト 
ノフ氏制作第2弾のゲームである。操作は 
簡単で,逆さ煙突から落ちてくる6種類の 
ペアの帽子を同じ種類で連続して積み重ね 
ていき, 5つ重ねると得点になるというも 
の。 ステージが 進む につれ 帽子の種類 やス 
ピードが 速くな り, 鋭い判断力と反射神経 
が 要求され る。 

価格は6,000(税別)で現在発売中。 

く問い合わせ先〉 

㈱ マイクロキャビン 〇〇593 (51) 6482 
〇囲碁名鑑ヵード第1巻 「 PA -5 C 02」 

1989年度に行われた囲碁の7大タイトル 
戦ぉよび話題局など全40局を収録してぉり, 
操作しなくても観戦できる「自動」モード 


コモドールの新しい世界戦略マシンである 
'「CDTVj (Commodore Dynamic Total Vision ) は 
AMIGA と CDROM を結合させた,まったく新しい 
カテゴリーのコンピュータである。 「 CDTV 」 のい 
ままでの CDROM と異なる点は,一見普通の CD ブ 
レイヤーと思われる本体の中に, AMIGA 500 ( + 
5 I 2 K バイト RAM ) 相当のコンピュータが内蔵さ 
れていることであり,そのうえ1,000ドル程度と 
安価になっている。 

標準ではキーポードやマウスなどは付属して 
おらず,すべての操作は付属の IR (赤外線)リモ 
—トコン トローラによって行うことが可能。こ 
のリモー トコントロー ラはいままでのマウス, 
ジョイスティック,キーボード, CDROM 操作の 
すべての機能を搭載しながらも使いやすくなっ 
ている。 

主なスペックは以下のとおり。 

• CDROM 部 

データ読み出し : I 53 K バイト/秒 MODEI 

: I 7 IK バィト/秒 MODE 2 
: 2 M バイ ト/秒 burst 
平均アクセスタイム: 0.5 秒 
最大アクセスタイム: 0.8 秒 
Commands : CDROM 、 CD - AuckxCD+G 

MTBF : 10,000 P . O . H . 



CDTV 


Standard S 叩 ported : ISO - 9660 
容量 : 540 M バイト 

• 入出力端子 

アナログ,デジタル RGB ( DB -23) 出力 
コンポジットビデオ ( NTSC ) 出力 
S 映像出力端子 
RF 出力 

セントロニクスパラレルインタフェイス 
RS -232 C シリアルインタフェイス 
外部フロッピーディスクドライブ 
ステレオオーディオ出力 
MIDI IN/OUT 

RAM / ROM 力ード (256 K バイト)ポート 
現在のところは欧米などでしか発売されてい 
ないが,今年春ごろから日本でも発売される予 
定〇 


ペンギン情報 コーナー 159 





















FILES OhiAA 


このインデックスは,タイトル,注記 一 
筆者名,誌名,月号,ページで構成されて 
います。寒さもいちだんと厳しくなってき 
た今日この頃0でも春はもうすぐそこ,何 
事にもめげずに頑張ってくださいね。 


参考文献 

I / O 工学社 

ASCII アスキー 

コンブティーク角川窨店 

テクノポリス徳間書店 

ボケコンジャーナルエ学社 

POPCOM 小学館 

マイコン電波新聞社 

マイコン BASIC Magazine 電波新聞社 

LOGIN アスキー 


一般 

►年末年始パソコン購入ガイ K *9 I 
Macintosh や AMIGA といった洋モノから PC - 980 1 • X 68 
000, FM TOWNS といったお馴染みの槻種まで,各マシ 
ンの特徴やコストパフォーマンスを解脱。購入予定のあ 
る人は必読。——編集部, LOGIN , 24号,251 -263 pp . 

► NETWORK CONNECTION 

ネットワーカー•ホリックが新装開店。今号では , E 
YE - NET の情報誌と AV 専門誌が運営する 「 aVIej を紹介。 
X 68000 の PDS は D 6 GA が開発したウインドウシステム 「K 
O - WINDOWjo ——編集部, LOGIN , 24号, 296-297 pp . 

► Goods Collection 

シャープから発売された電子手帳 PA - 8800と PA - 6300 
の紹介。——編集部,ボヶコンジャーナル,丨月号, Ip . 
►日本パソコン百景 

日本を飛び出して台湾の台北中華商場へ。いわば台湾 
の秋葉原。その混雑と汚さにビックリの取材陣。ーフ 
デヨシ&カシワラ, ASCII , I 月号,286 -288 pp . 

►サイ パーソン ( CYBERTHON ) 報告 

サンフランシスコで行われたバーチャル • リアリティ 
に閲するイベント,サイバーソンの棋様を詳細にレボー 
卜する。——野々村文宏, ASCII , I 月号,369 -376 pp . 

► MIT Media Lab . 

MIT Media Lab . 創設 5 周年記念シンポジウ厶の2日間 
の棋様を,コボレ話も含めて紹介する。一砂原秀樹, 
ASCII , I 月号, 433-437 pp . 

► ASCII EXPRESS 

ラスベガスで開催された世界最大のコンピュータトレ 
ードショー, COMDEX の棋様をレポートする。——編集 
部, ASCII , I 月号, 282-283 pp . 

► グローバル.ビレッジ.ダイジェスト 

世界最大のコンピュータショウ, COMDEX について, 
その性格から内容,日本に対する彩響まで幅広くレポー 
卜する。——高田正純,マイコン, I 月号,140- 149 pp . 
►各種モデムの性格診断 

X 68000 を使って行われたモデム7機種のスピードテ 
ストを豊富なグラフによってまとめる。——マイコンネ 
ットワーク研究会,マイコン,丨月号, I 50- I 58 pp . 

►パソコンソフト • マーケットガイド 

ホビーソフトの年間ペスト10と,お勧めのゲーム20本 
を紹介。——編集部,マイコン, I 月号,別冊 46-70 pp . 
►秋季コムデックス 

COMDEX の模様を主に会社別に紹介していくレポート。 

- Dana Blankenhorn , I / O , 丨月号, 238-24 Ipp . 

►アナログ回路による重低音システムの設計 

カーオーディオに重低音を追加する装置を設計する。 
3 D フイルタとパワーアンプを使つたもので,へビメタ愛 


好者には必需品。——山崎誠, I / O , I 月号, l 96-204 pp . 

► I / O 総目次 

I / O 版 INDEX '90。 I 年間の I / O の記事を手早く探せる総 
目録。一編集部, I / O , I 月号,2 14-216 pp . 

MZ シリーズ 

MZ -1500 ( MZ -5 Z 001 BASIC ) 

►漂流 

海を漂流しているロジンソン。飢え,渇き,絶望に耐 

えながら陸地を目指すゲーム。-へルニャン•バウ 

マン,マイコン BASIC Magazine , I 月号,122- 124 pp . 
MZ 2500 ( M 25- BASIC ) 

►恒例! 町内玉入れ大会 

みこちやんを操って,玉をすべてゴールのカゴに入れ 

れば 0 K 。 パズルゲー厶。-謎のパズル大好きおじさ 

ん,マイコン BA&C Magazine , 丨月号, I 25- I 26 pp . 

Xl/turbo/Z 

XI シリーズ 

►ドロアーガの塔エクサラント 

各階のボスやスライムと戦い,宝を取り,罠や迷路を 
くぐりぬけ,泉で休み,姫を無事に救け出す。——堀田 
英克,マイコン BASIC Magazine , 丨月号,151- 152 pp . 
►へズメタルジャケット 

2〜6人用対戦戦車ゲーム。対戦バトルシティ。要ジ 
ョイスティック2本。——へミタク,マイコン BASICM 
agazine , I 月号,153- 154 pp . 

XI turbo シリーズ 

► A STARRY NIGHT 〜星の多い夜〜 

洗脳された星をブラック•ホールに沈めろ。——中西 
弘幸,マイコン BASIC Magazine , I 月号,155- 157 pp . 

X68000 

► NEW SOFT 

生中継 68, Misty Vol . 6, Magical Shot を紹介。——編 
集部, LOGIN , 23号, l 8-27 pp . 

►最新ゲーム徹底解剖!! 

新着 ゲーム 「アトミック •ロボ キッド j 「ソル•フィ 
ース j 「ニューラル•ギア j と RPG 1 ■ラグーン j を攻略。 
——編集部, LOGIN , 23号,170- I 9 lpp . 

►よくわかる続ダンジョン•マスターカオスの逆!! 

開発中のシステムを機種ごとに紹介。——編集部 , L 
0 GIN , 23号, 200-20 Ipp . 

► Software Review 

超難解シューティング「ナイアス」をサカナに,アク 
シヨン•シューティングの近未来を語り合う。一松本 


新刊書案内 


NTT が 

核攻藝される日 
* ‘ 

浅井陆 


NTT が核攻擎される。どこが攻擎するのか。ソ 
連である。どうして攻擊するのか。アメリカの極 
東核戦略において,重要な国防通信システムの一 
端を担っているからである。なぜ攻擎されるのか。 
通信網がやられれば現代の戦争は戦えないからで 
ある。在日米軍基地にアメリカの通信システムが 
あるのは当然だが,米軍とはまったく関係のない 
NTT 国分寺電話局や, KDD 大手町電話局も米軍の 
軍事通信に使われているのだ。 

と,こういうドキュメントである。ウサンくさ 
そうなタイトルだが,米軍が日本からも核攻擎指 
令ができるようなシステムをとっていても不思議 


はないし,資料もきちんと揃えてある。ポイント 
は日本が国民の知らされないまま,重要な核攻擎 
の拠点になっていることや,日本の光ファイバー 
技術がひと役かっていること。民間企業であるはず 
の NTT や KDD が米軍の協力をしてケーブルを引い 
たり回線を用意したりし,日電が米軍の N 0 RAD 
と近くの指令部を光ファイバーで結ぶ際,光通信 
装置を納入した。とかく見えないところで物騒な 
のは次戦緩和のいまもかなりないのだ。 ( K ) 

NTT が核攻擊される日浅井隆著 フットーつ 
-ク出版社刊 003 (5395)571 1 四六版 295ぺ 
ージ 1,500円 


160 Oh! X 1991.2. 


害籍の価格は消費税込みです 














FILES /J/ilIY 


隆 一VS. X 68000新聞社, LOGIN, 23 号. 208-209pp. 

► X 68000新聞 

イメージファイト,ソル•フイース,ブルトン•レイ, 
マーブルマッドネス,スペース.ローグを紹介。——編 
集部, LOGIN, 23号, 268-27Ipp. 

► NEW SOFT 

ルーシー•ショット, ブル トン•レイ を紹介。-編 

集部, LOGIN, 24号, 28-29pp. 

► The News File 

SUPER-HD のハードデイスクのないタイプ, 「X68000 
SUPER」 を紹介。——編集部, LOGIN, 24号, 39p. 

►最新ゲーム徹底解剖!! 

シューテイ ング ゲーム 「ソル. フィース」の 6面を徹 
底解剖。——編集部, LOGIN, 24号, 200-20Ipp. 

► X 68000新聞 

遥かなるオーガスタ,ワールドスタジアム,栄冠は君 
に,リングマスタ_11,プリンス•オブ•ペルシャ,を 
紹介。また,発売が再び増え始めたシューティングゲー 
ムを「第二次シューティングブームだ!!」と銘打って特 
集。——編集部, LOGIN, 24号, 274-279pp. 

►バソコンゲーム大全 

「銀河英雄伝説II」と「続ダンジョン•マスターカ 
オスの逆襲」の攻略法。一編集部,コンブティーク, 

I 月号, 136-139, I60-I6lpp. 

► GAMING WORLD 

イメージ ファイト,ジェミニ ウイング, ソル•フイー 
ス. ニューラル •ギア, マーキュリー, ノスタルジア, 

シュヴァルツシルト,リング マスター II,エメラルド* 
ドラゴンの紹介。一編集部,テクノポリス,丨月号, 
38-57pp. 

►攻略ファイト! 

「続ダンジョン•マスターカオスの逆襲」と「銀河 
英雄伝説II」を攻略。一編集部,テクノポリス,丨月 
号, 80-83, 88-89pp. 

► Hot Press 

続ダンジョン•マスターカオスの逆襲,ブルトン • 
レイ,ニューラル•ギアの紹介と攻略法。リングマスタ 
-II, 生中継68,ワールドスタジアム,ソル.フイース, 
イメージファイトの紹介。——編集部, P0PC0M, I月 
号, l6-32pp. 

►ゲームの達人 

銀河英雄伝説IIを攻略。——編集部, P0PC0M, I月 
号, 90-93pp. 

► ミュージック • パビリオン 
X68000 X-BASIC 用 ミュージックデータ 「TRUTH (T-S 
QUARE) Jo ——編集部, P0PC0M, I 月号,183- 187pp. 

► NAGDRV 情報局 

マイコン BASIC Magazine 1990年12月号で発表されたミ 
ュージックドライバソフト 「NAGDRVj についての,読 


者からの質問に答えている。——永田英哉,マイコン B 
ASIC Magazine, I 月号, 88-89pp. 

►誌上公開質問状 

X-BASIC で 64KB を超える ADPCM の録音のやリ方は? 
——多田太郎,マイコン BASIC Magazine, 丨月号, 92p. 

► NEW PRODUCTS 

グラフィックソフト 「CANVAS PRO-68K」 の紹介。一 
1集部,マイコン BASIC Magazine, I月号, 95p. 
►ブラディオン 

宇宙船を操って相手をやっつける。I〜2人用対戦シ 
ューテイング。——片岸健一,マイコン BASIC Magazine, 
I 月号,158- 159pp. 

► MENTAL POWER 

向かってくる壁を左右に避けて進み,決められた数の 
壁をよけると次のステージへ。ドライブゲーム。——高 
橋秀之,マイコン BASIC Magazine, I月号,160 -162pp. 

► UP AND DOWN 

海底で潜水艦を動かし,お金を取る。——永井崇博, 
マイコン BASIC Magazine, 丨月号, I63p. 

► WGP 〜 Name Entry 〜 

タイトーのゲームミュージック•プログラム。-西 

島淳 一 ,マイコン BASIC Magazine, I月号, I83p. 

► ATMIC R0B0-KID 〜メインテーマ〜 

ゲームミュージックプログラム。要 NAGDRV。 ——あ 
んど,マイコン BASIC Magazine, 丨月号,丨 87- 丨 89pp. 

► FINAL LAP2 〜 EndingA 〜 

ナムコのゲームミュージックプログラム。 要 NAGDRV。 

- Hideya Nagata , マイコン BASIC Magazine, I 月号, 

190- 194pp. 

►チヤレンジ!! アドベンチャー•ゲーム 

「聞の血族 • 完結編」を,画面写真で紹介。一佐久 
間亮介,マイコン BASIC Magazine, I月号,221 -223pp. 

►ソル•フイース 

シューティング「ソル*フィース」を紹介。-山下 

章,マイコン BASIC Magazine, 丨月号,226 -227pp. 
►ゲーム虎の穴 

「X68000 はゲーセン移植がすごい j と称してサイバ 
リオン,グラナダなどのゲームと MIDI インタフェイスを 
取り上げる。——編集部, ASCII, I月号,321 -336pp. 

► AV STRASSE 

FIXER Ver. 4. 0,ドローグラフィックライブラリなど 
の市販ソフトと. K0-WIND0W, ファイル圧縮ツール LZ 
Xなどの PDS を取り上げ,評価する。一仲田津宏•中 
山進, ASCII, I 月号, 409-412pp. 

► FREE SOFTWARE INDEX 

PDS の中から目立ったものをリストアップ。 X68000 用 
BGC, DRV, JSHWILD なども紹介されている。——編集 
部, ASCII, I 月号,451 -455pp. 

►光磁気ディスク CZ-6M0I をレポート 


X68000 ユーザー待望の大容置メディア, M0 ディスク 
の概要と使用感のレポート。値段,互換性,活用法,付 
属ソフトなどについて詳細に取り扱っている。——高橋 
雄一,マイコン,I月号,281 -285pp. 

► X68000 マシン語入門 

今月からは対話型ソフトの製作を行う。第I回はキー 
ボードからの丨項目入カルーチンを作るところまで。一 
—if 橋雄一,マイコン,I月号, 292-299pp. 

►ハードディスク IPL 

ハードディスクがついているけどフロッピーからの立 
ち上げ機会が多い人に便利なフロッピー優先の IPL プロ 
グラム。-市原昌文, I/O, I月号, 172-179pp. 

► DELBAK2 

ソースなどのバックアップファイルをまとめて消去す 
るプログラム。—— L&M, I/O, I月号,205 -206pp. 

► GAME BOX 

アトミック•ロボキッド,ナイアスについて批評をす 
る。——吉沢正敏•牛島健雄. I/O, I月号, I32-I33pp. 

► SOFT BOX 

シャープから発売された CANVAS PRO-68K で, ドロー 
ツールの 仕組みから絵の害き方.使い道などについて紹 
介する。——伊藤ゆう, I/O, I月号, 2I0-2IIPP. 

ポケコン 

PC-E500 

► A 丌 ACK BALL 

ボールを相手に当ててやっつける。——町野稔,マィ 
コン BASIC Magazine, I 月号,166- 167pp. 

PC E500PJ 

►誌上公開質問状 

「//」や 「flj といった記号を表示するには?一 Akiko, 
マイコン BASIC Magazine, I 月号,9 1 -92pp. 
PC-E500/PC-G801 
►ポケコン Q & A 

PC-E500 での KEY0 の使い方や乱数の発生法, PC-G80I 
でのダンジョンマップデータの展開方法などの質問につ 
いて答える。——編集部,ボケコンジャーナル,I月号, 
82p. 

PC-E500/E550/1480U/1490U 
►はみだしゲーム講座 

仮想 VRAM を使った背景の処理の方法について説明す 
る。——編集部,ボケコンジャーナル,丨月号, 87p. 

► FRUITS FIELDS 

幻の秘宝「ふるうつ j を集めて回るパズルゲーム—— 
r.emoo, ボケコンジャーナル,I月号,13 -20pp. 

► 2し • PY0NK0 ! 

穴に落ちないように左から右へ跳ぶアクションゲーム。 
——せとけん,ボケコンジャーナル,丨月号, 48p. 



幻想としての文明 

ニッボンの終焉や縄文式思考云々に次ぐ,栗本 
慎一郎教授の一般人向け啓蒙書である。氏がいまま 
で書いてきたさまざまな論理や事象を中心に時事 
ネタを交えて述べた害であり,学術書ではない。 

「文明の旋律理論は,物的構造がすべてであると 
いう誤った理論を完全に廃止する。たとえば,餓 
えた者は立ち上がり,豊かな者は不満を持たない 
というような『理論』はもう捨て去るべきことを 
主張する j 本だ。 ( K ) 
栗本慎一郎著講談社刊 003(3945)111 1 四六 


版200ページ1,300円 



電脳と頭脳 

原題を訳すと,「アイデアと情報 J 。 人間の知 
能とコンピュータのもたらす記号処理を分離し, 
人間がコンピュータに過剰に期待したり,恐れた 
りせずにつきあっていけるよう書かれた本である。 
頭脳はアイデアを生み出すことができるが,電脳 
にはできない。本書はそれを骨子に,コンピュー 
タ テクノロジーの 概念とそれと正しくつきあうた 
めの知識や知恵を平易に解説している。 ( K ) 

アーノ ウ•ペンジアス著岡和夫訳 TBS プリ 
タニカ刊 003(3238)571 1 四六版266ページ 
2, 000円 


書籍の価格は消費税込みです 


FILES Oh ! X 161 

























UESTIOINJ 



INISAA^ER 



X - BASIC でゲームプログラム 
を組んでいます0スプライトと 
BG を使っているのですが , BG 


を画面にしきつめてしまうとテキストが見 


えなくなってしまいます0スコア表示もし 


たいし,実行中にブレイクキーを押したり 


エラーが出て止まってしまってもどこで止 
まったかもエラーの内容も見えないので非 
常にうざったいのです。 

どうにかして BG を使いながらテキスト 


を見られるようにしたいのですが,そうい 


うことはできないものなのでしょうか。 

神奈川県富良圭介 

通常 X - BASIC では画面につい 
てはスプライト ( BG ), テキス 
卜,グラフィックの順に優先順 
位が決まっていて, BG がしきつめられてい 



ると BG (スプライト画面)の裏にテキスト 


の表示が隠れてしまつて表示することがで 
きません。 

ですが X 68000 は実はマシン語レベル 


ではその優先順位が変えられるようになつ 
ています 0 プログラム中は ctrl + D を押し 
て画面を初期化するというのがふつうです 
が,この際ですから画面の優先順位を変え 
る拡張関数を作ってしまいましよう。 


X 68000 の画像は専用のビデオコントロ 
ーラによって複数の画面を合成して表示デ 
ータをドット単位に送り出しています。ア 
ドレスでいうと E 8240 0 H 〜 E 8260 0 H がそう 
でここにいろいろな数値を書き込むことで 
テキスト/グラフ ィック 表示の ON / OFF を 
行ったりその優先順位を決定することがで 
きるようになっているのです。そして 
E 82500„番地がその優先順位を決定する1/ 
0でここに数値を書き込むことでテキスト 
をスプライト画面の上に表示させるように 
します。 

E 8250 0 H には初期状態では2進数で表 
現すると次のようなデータが書き込まれて 
います。 

00 00 0110 

このうち上位2ビットは無意味,次の2 
ビットがスプライト画面の優先順位 ( 0番 
目。つまり一番上 h 次がテキスト (1 番目) 
でグラフィック (2 番目)という内容にな 
っているのです。ここを, 

0010 00 01 

と書き直すことで画面の優先順位をテキス 
卜,グラフィック,スプライト ( BG 含む) 
という順番にすることができるわけです。 

ということでリスト1がそのサンプルで 


す。 asx , lk . x でアセンブル,リンクして作| 
成された. X ファイルを . fnc という拡張子 
にリネームして BASIC が入っているディ 
レクトリに転送します。 

次に BASIC.CNF というコンフィギユレ 
ーシヨンフアイルに, 

FUNC =ファイル名 
という1行を追加してください。これで 
txtup () 関数力 5 ' X - BASIC に追加されます。 
この関数は引数に0を入力するとテキスト 
力 5 ' BG の上に,それ以外の数値で BG がテキ 
ストの上に表示されるようになります。 

ビデオ コントローラに 画面の優先順位を 
設定する数値を入力する際に注意しなくて 
はならないのは異なる画面(テキスト,グ 
ラフィック,スプライト画面)にそれぞれ 
違う数値を入れなくてはいけない(つまり 
複数の画面に同じ順位をつけてはいけな 
い)ということです。そのため ユーザー が 
変な数値を入れないようにこのプログラム 
ではテキストを上にあげるだけになってい 
ますが,67/72行目の数値を変えるだけでグ 
ラ フィックを一番上にしたりスプライトを 
一番下にしたりといろいろと画面の設定を 
変えることができます。プログラム中にい 
ろいろと コメント も残しておきましたので 


■ J スト 


1 

♦テキ 

スト 

VRAM の優先表示 

42 

txtup_par : 



2 

* By 

DE 

1990/11/23 

43 


dc.w $02 

* 引き 

3 

» .include locscall.mac 

44 


dc.w $ffff 


本 

4 




45 





5 

本 Information Table 

46 

本 

EXEC TAble 



6 


.text 

47 

F_exec : 



7 

• dc 

.1 

F_init 

48 


do*1 txtup^func 


8 

• dc 

•1 

F_run 

4 9 





9 

.dc 

•1 

F_end 

50 


• even 



10 

• dc 

.1 

F^exit 

51 





11 

• dc 

.1 

F_break 

52 

本 

エントリ 



12 

.dc 

.1 

F_ctrlD 

53 

tx 

tup_func : 



13 

.dc 

.1 

F_dmy1 

51 


t s t• l 12(sp) 



14 

.dc 

.1 

F_dmy2 

55 


bne gotxtdn 



15 

.dc 

.1 

F token 

56 


bsr txtupset 



16 

• dc 

.1 

F^parTbl 

57 


bra retfunc 



17 

.dc 

•1 

F_exec 

58 

^ot jctdn : 



18 

• dc 

.1 

0,0,0,0,0 

59 


bsr txtdnset 



19 




60 

retfunc : 



20 

F 一 init 



B1 


c J r.1 d0 



21 

F_run: 



62 


rts 



22 

F_end: 



63 





23 

F exit 



64 


檐先 m 位セット 



24 

F break 


65 

* 

(テ 

キ 

25 

F ctrlD: 


66 

txtupset : 



26 

F_dmy1 



67 


move•w 01 


10. 

27 

F_dmy2 



68 


bra writeit 



2B 

rts 



69 





29 




70 

本 

( スプライト ® 先) 


30 

i TOKEN 

table 

71 

txtdnset : 



31 

F token : 


72 


move.w #%00 00 

J ) し 

10- 

32 

dc. 

b 

1 txtup 1 ,0 

73 





33 

dc. 

b 

0 

74 

本 

値を窬き込む 




本 param table 

F^parTbl : 

do.i txtup_par 

本 parameter ID table 


後先) 


writeit: 

move.1 #$e82500,a 1 

IOCS _B_>POKE 
rts 

• end 


ぜひ各自好きなように変更して見てくださ 

い0 

また,1月号で ディスクに 収録されてい 
た MUSICDRV.X 用の MUSIC 1 .FNC には, 
画面の優先順位を変更する関数も入ってい 
ます0詳しくはドキュメントをお読みくだ 
さい。 

12月号 Q & A , 179ページのバッ 
チファイルを入力して起動した 
ら,登録してあるファンクシヨ 
ンキーがクリアされてしまい,再登録しな 
ければなりませんでした。なぜでしょうか。 
またクリアしないバッチファイルにするに 
は,どうすればよいのでしょうか。あと, 

巳ドライブにある OPM ファイルを連続演 
奏するバッチファイルを作ろうといろいろ 
やってみましたが,うまくいきませんでし 
た 0 曲が終了したことを返すコマンド,あ 
るいは エラーコー ドを返すツ ー ルがないも 
のでしょうか,ご教示ください0 

また,さらに B ドライブのファイルをラ 
ンダム演奏するにはどうしたらよいのでし 
ょうか。使用機種は X 68000 ACE です〇 

宮城県佐藤公夫 



162 Oh! X 1991.2. 


















UhfXI 質問箱 




たくさん質問がありますが順番 
に答えていきましょう。まず最 
初の質問ですが,これは佐藤さ 
んが本文の説明をよく読んでいないんだと 
思います。ほかにも何人かの方からそうい 
った質問を受けましたが,編集室で動作を 
再確認したところ,ファンクションキーが 
クリァされるといった症状は見られません 
でした。12月号をよく読んで再挑戦してみ 
てください。ぉそらく, “_ exit ( i )’’ と書き換 
えるところを “ b _ exit ( i )” としているんだと 
思います。 

次の質問は,バッチファイルの中で曲の 
終了を教えてくれるコマンドがあるのか? 
ということです力 ? ,そのようなコマンドは 
ありません。しかし,あきらめるのはまだ 
早いですよ。曲の終了を返すコマンドはあ 
りませんが,指定したチャンネルが演奏中 
かどうか調べる命令が X - BASIC にありま 
す。これが“ m _ stat ” です 0 マニュアルに 
あるように引数を省略すると,チャンネル 
1〜8が演奏中かどうか調べてくれます。 

このときの戻り値は,ビット〇〜ビット 
7がチヤンネル1〜8に対応していて,0 
で停止中,1で演奏中を示します。つまり, 
戻り値が0なら曲が演奏されていないとい 
うことです。簡単な実験をしてみましょう。 
10 m _ init () 

20 m _ trk ( l ,” o 4 cdefgab < c ”) 

30 m _ play () 

40 repeat 

50 until m stat ( )=0 
60 print ’’ 演奏が終了しました” 

70 end 


見てのとおり「ドレミ ファ ソラシド」を 
鳴らすだけのつまらないプログラムです力 5 , 
実行させると演奏が終了してからメッセー 
ジを表示するようになっています。仕桂卜け 
は40行からの repeat 〜 until です。 m_stat 
() の戻り値が0(つまり全チヤンネルが停 
止)になるまで,ループを繰り返すように 
してあるのです。 

これで演奏の終了判定のやり方がわかり 
ました力 5 ',このままではバッチファイルか 
ら使えません。そこでまたまた C コンパイ 
ラを使うことにしましよう。下のプログラ 
ムを X - BASIC から入力してください。フ 
アイル名は wait . bas としましよう。 


10 repeat 

20 if inkey $(0) く〉”” then break 


30 until m _ stat ( )=0 
40 end 

ループの中でキー入力を見るように変更 
したので (20 行),演奏途中でもなにかキー 
を押せばループを抜けるようになっていま 
す。次に BC . X で C 言語のプログラムに変換 
したら,エディタに読み込んで“ b _ init ()” 
という行•を削除して, “ b _ exit (〇厂を “_exit 
(0)” と書き換えてください。こうしたら, 
cc wait.c /W 

として コンパイル します。 オプションの 7 
w ” は必ず大文字で^*定してください。こ 
れで wait . x が生成されます。 
echo off 

copy b : a.opm opm 
wait 

copy bib.opm opm 
wait 

echo on 

というようなノぐッチファイルを作ってみて 
ください。 a . opm の演奏が終了するか,なに 
かキーを押すと, b . opm の演奏が始まるは 
ずです〇これで OPM ファイルの連続演奏が 
できるようになりました。しかし,上のバ 
ッチファイルだと OPM ファイルを追加し 
たときに,バッチファイルを書き換える必 
要があります。それでは面倒なので, 
ecno off 

for %a in ( b : 氺. opm ) do copy b:%a 
opm | | wait 
echo on 

としておけば バ ッチ ファイルを 書き換える 
必要はありません。上の“ | |”は BAS 
I C の“:”のようなもので,1行に複数 
の コマンドを 列挙するときに使うものです 
(“ | ”は シフ トキーを押しながら を 
押して入力します)。 

もしも, OPM ファイル自体に手を加える 
ことも辞さないならば,もっと簡単な方法 
もあります。 OPM ファイルの最後, “( p )” 

となっている部分の次に “( w )” を加えれば 
いいのです。これは演奏が終了するまでウ 
エイトをかける命令です。これなら, 
COPY *• OPM OPM 
だけで全曲演奏ができます。ただし,変更 
した OPM ファイルはバックグランド実行 
できなくなりますので注意してください。 

それと BASIC などでプログラムを作り, 
コマンド化すればランダム演奏もできない 


ことはないはずです。ぜひ佐藤さん自身で 
考えてみてください。 

最後に OPM フアイルを OPM ドライバに 
コピーするときに注意しておきたいことを 
書いて終わりにします。普通 OPM ドライバ 
を登録するシステムの CONnG . SYS は, 
DEVICE =¥ SYS ¥ OPMDRV.X 

のようになっていると思います力 ? ,このと 
き確保される演奏用ノぐッファは約64 K バイ 
卜です。ですから最近では11月号に掲敕さ 
れた 「 GUSH 」 のように,1トラックに10 
K バイトとるようなプログラムだと, X - 
BASIC が「外部関数エラーです。メモリー 
確保できません」とエラーメッセージを出 
すでしよう。 X - BASIC は親切にメモリカ ? 
確保できなかったことを教えてくれますが, 
OPM ドライバに泊:接コピーして演奏する 
場合にはそんなメッセージも表示されませ 
ん。メモリが確保できなくても演奏はされ 
ます力' 原曲を忠実に再現してはいないの 
です。そこで演奏用バッファを多めに取っ 
ておけばいいのですが,それには, 

DEVICE =¥ SYS ¥ OPMDRV.X #80 
のように#に続けて数字を書きます。上の例 
だと演奏用バッファに 80 K バイト確保され 
ます。そんなことは知らずに COPY 〜 OPM 
していた人もいると思うので,思い当たる 
フシのある人は, CONFIG . SYS の設定内容 
を確認してみることをお勧めします。 

(影山裕昭) 


質問にお答えします 

日ごろ疑問に思っていること,どんなこ 
とでも結構です。どんどんお便りください。 
難問,奇問,編集室が総力を上げてお答え 
いたします。ただし,お寄せいただいてい 
るものの中には,マニュアルを読めばすぐ 
に回答が得られるようなものも多々ありま 
す。最低限,マニュアルは熟読しておきま 
しょう。質問はなるべく具体的に機種名, 
システム構成,必要なら図も入れてこと細 
かに書いてください。また,返信用切手同封 
の質問をよく受けますが,原則として,質 
問には本誌上でお答えすることになってい 
ますのでご了承ください。なお,質問の内 
客について,直接問い合わせることもあり 
ますので,電話番号も明記してくださいね。 
宛先:〒108東京都港区高輪 2-19-13 

NS 高輪ビル 

ソフトバンク株式会社出版部 
「 Oh ! X 質問箱」係 


Oh ! X 質問箱 163 














THE EDITOR. 


強していいんですから,存分にやってく 
ださい。試験が始まってから,参考害見 
たりしたらだめですよ。 


だ。 I 月30日とは何を考えているんだか。とは 
いっても,せっかくの修学旅行で丨日中大阪日 
本橋に行く私のグループも何を考えているんだ 
かわからんが(先生があまりにもうるさいので 
一応大阪城にもよる予定)。 

清水勲 (16) 神奈川県 
関東のほうはやっぱり修学旅行といえば大 
阪,京都になるんでしようね。最近はお金 
持ちの学校になると,海外に行くのも当た 
り前になっているようですけど。 

♦ 丨校すベって腹いせに X 68000で遊んだ。メモ 
リをダンプすると“浪"なんて書いてある。ム 
カーツ, X 68000 までバカにしてやがる。次の日 
も丨校すべっていた。受験の日に母さんが「へ 
ビが落ちる夢」を見たそうな。やっぱり,"浪" 
なのだろうか(実話)。渡辺篤志 (17) 滋賀県 
しかし,お母さんも受験のの朝に「へビ 
が落ちる夢を見たわよ J とは n が裂けても 
言えなかったでしようね。 

♦少し前のことだが,学校で C 言語の講習があ 
るというので行ってみた。もちろん, XC ではな 
く PC -980 I 上で動いている TURBO C だった。おも 
むろにプログラムを打ち込み SAVE しようとし 
た。データディスクも確認し,実行した。しか 


し, SAVE できない。しばらく悩んでいると友達 
が ライ ト プロテクトになっているといってくれ 
た。そうです, 3. 5インチディスクではプロテク 
ト ノッチが開いていると,ブロテク トが かかる 
のです ね。 5インチしか使わないから知らなか 
った。 浅沼博明 (20) 北海道 

3. 5インチデイスタのプロテクトノッチは 
いいですよね。5インチもあんなふうにで 
きないのかなあ。 

♦ただいま卒業研究でシミュレーションプログ 
ラムを暇プロ的に作っています。そういう理由 
で「清水和人流プログラミング道場」を心待ち 
にし,「シミュレーションプログラミング入門」 
の今後の活躍に期待している今日この頃です。 

藤戸正道 (22) 東京都 
卒業研究ですか。いまのうちは暇プロ的に 
やっていても,せっぱつまってくるとそう 
もいかないでしようね。 

♦バスの 中で Oh ! X を読んでいて,友人に「この 
本, 560円の価値あるの? なんか内容が少なそ 
う」などと言われた。僕は猛烈に悲しかった。 
こんなにためになる本はないと思うのに。 

佐竹勝博 (16) 香川県 
う一ん,それは猛烈に悲しい。 

♦突然ですが,私の通っている学校には無数に 
ある PC -980 I , ポツポツとあるワークステーシ 
ョンに「こそっ」と隠れるように備品票の つい 
た X 68000 PR 0 II - HD があるのです。_時はサ 
イバースティックもあったのですが,教授に送 
り返させられたそうです。 I 階下にあるその研 
究室では 「 R - TYPE 」 マシンと化した X 68000の姿 
が21インチのディスプレイと共にあったのです 
が,最近は修論のために使われているみたいで 
す。12月ですからね……。ところで,私は現在 
48時間以上起きているのですが眠くならないの 

です。どうしたことだ . ,へこへこ。 

折田正栄 (22) 福岡県 
っいに,人類永遠の課題といわれる眠らな 
い術を身にっけたのでしようか。 
♦誕生日に両親に髭剃り(電動のやつ)をもら 
いました。いままでは手で毎朝ジョリジョリや 
つていたのですが,これはいいですねえ。ズー 
ムイン朝を見ながらブイーンと剃っています。 



FROM READERS 


さて,いよいよ大詰め。何がって?決 
まっているじゃないですか。ね,受験生 
の皆さん。試験が始まるまでは自由に勉 


♦ゆ,雪が降らない。このままじゃ,スキーに 
行けない。夏にどこにも行かずにバイトしたの 
に。こうなったら,スキーへ行くのを I 回やめ 
て , C compiler PRO -68 K ver .2.0 を買っちゃおう 
かな。ところで,いまうちの SX - WIND 0 W では2 
種類の暁子さんが走っている。旧バージョンの 
SX - WIND 0 W を持っているそこのあなた,新しい 
名前にして同じディスクに入れてあげて , Mac 
と X 68000の両方を楽しみましよう。しかし,マ 
ウスカーソルがあんな形になるとは……(暁子 
さんのウィンドウの中で骨付き肉や魚になって 
しまうとはね)。 大内泰司 (21) 千葉県 

スキーと C compiler PRO-68K ver.2. 0 を 
天秤にかけるというのも,なかなか妙な感 
じですね。 

♦ 12 月2日,日本人初の宇宙飛行士として TBS 
の秋山さんが宇宙へ行った。しかし,その第一 
声がすごかった。「これ,本番ですか? j (さす 
が, TBS 関係者だけのことはある)。 

神生直敏 (21) 栃木県 
しかし,宇笛に行けるというのは本当にう 
らやましいですね。虫歯があるとだめらし 
いからなあ。 

♦ 4 歳の孫が来ると, X 68000 は孫のオモチヤと 

なり,私は助手にされてしまいます。 Z’sSTAFF 
でのお絵描きは得意中の得意,源平討魔伝,ポ 
ピュラスにのめり込んでいるという,末恐ろし 
い男の子です。孫のために(口実 ) CANVAS PRO 
-68 K 購入の予定です。 中野譲 (64) 兵庫県 

r 係のため j といいわけすれば,なんでも 
H えそうな気がしますね。でも,誰にいい 
わけするのかなあ。やっぱり,奥さん? 
♦いつもごくろうさまです。ぼくたち中学生に 
もわかりやすい記事などをお願いします。 

遠藤塁 (14) 岩手県 
いやあ,なんかよくわからないけど,すが 
すがしいハガキだなあ。 

♦まったく,高校での修学旅行はどこへ行くの 
かと思えば,ワンパターンの京都,岡山。ま, 
これはしかたがないとしても問題はいついくか 


‘0^0 夢 






164 Oh!X 1991.2. 






























手でやるよりずっと早いですね。しかし,人間 
はこうやって文明の利器の中に埋もれていくの 
ですね。ときどきは手で剃ろうかな。あ,プレ 
ゼントしてもらったのはブラウンのやつです。 
「おはようございます。ブラウンです!」のあ 
れです。 藤田勝也 (22) 神奈川県 

文明の利器はなんといっても便利だし,時 
間の節約にもなりますからね。埋もれてし 
まってもいいんじゃないでしようか。 

♦ メジロマックイーン,キヨウェイタップ,パ 
ッシングショット,単勝の3連勝は我ながらす 
ごいです。しかも, I 点勝負ですよ。でも,千 
円ですからね。あまり運を使うとあとが怖いし, 
有馬記念はじっとしておくことにしましよう。 
天皇賞のバンプーは本当に残念でした。ホワイ 
トストーンがジャパンカップで勝ったら , C 
compiler PRO -68 K ver .2.0 に化けるかも。 

藤沢直樹 (20) 大阪府 
競馬の馬の名前ってなんか変。 

♦うちの高校の合唱部が都代表となり,北海道 
で行われた全国大会に行ってきました(全国" 2 
位")。コンピュータルームのとなりが音楽室な 
ので毎日全国レベルの歌を聞かされています。 
いまでは歌も覚えてしまい,一緒に歌っていま 
す。でも,プログラムを打っているときはうる 
さくてむかつきます。そして,なにを隠そうう 
ちのクラブも D 6 GA のコンクールで入選 C 88 と 
セ9年)しているんですよ,これが。 

市川徳明 (17) 東京都 
コンピュータで演奏させて,それに合わせ 
て合唱してもらうというのもいいんじゃな 
い? 

♦この前の夏休みのことであるが,私はアルバ 
イトで地下探査アシスタントというものがあっ 
たのでやってみた。しかし,実際にはなんと自 
衛隊の演習場で不発弾探しをやらされた。しか 
も,そこはハチは飛ぶわ,マムシは出るわ,挙 
げ句の果てにはクマも出たことがあるというこ 
とを聞かされたのであった。まったく,こんな 
バイトをした人は数少ないであろう。 

山本潮 (21) 宮城県 
クマまで出るとは。自衛隊の人もときどき 
はクマに遭遇するのかな c 
♦日本サンライズはサンライズに。日本ソフト 
バンクはソフトバンクに。でも,もし日本食堂 
が食堂になるとなんか変!? 

黒武者健一 (21) 神奈川県 
変というよりも,無茶苦茶情けない。絶対 
やらないでしよけど,やったら面白いのに 
なぁ。 

♦最近見かけないので,てっきり事故って入院 
でもしているのかと思っていましたが,元気だ 
ったんですね,華門さん。私は先日,自転車で 
山道を下っていて,カーブを曲がり切れずに崖 
(といっても 4 m ぐらい)から落っこちました。 
幸い下の地面が柔らかかったので,肩がはずれ 
たほかは打撲だけですみました。編集部の皆さ 
んも運転するときは気をつけてください(それ 
にしても落ちていくときのあの感覚は病みつき 


になりそうである)。 中村学 (19) 石川県 

4 m だと結構落ちるまでの時間が長いかも 
しれない。いままでの人生が走馬灯のよう 
に浮かばなかったでしようか。 

♦昔々の話です。私は Oh ! MZ に掲載されている 
ブログラムを X 丨で打ち込もうと電源を入れま 
した。そのとたんに,なぜか私はサザエさんが 
見たくてたまらなくなりました。うまい具合に 
あと30分でサザエさんが始まる時間だったので, 
私は X I のタイマーをセットしてから BASIC を 
立ち上げました。で,問題の時間に画面は切り 
替わるはずだったんですが……,なぜか画面は 
切り替わらずに真っ青に染まった X I の画面が 
映っているのみでした。ああ,哀れ X 丨は修理に 
出されたのでした。それにしても恐るべしサザ 
エさん。不老不死はダテじやない(笑)。 

表健一 (18) 石川県 
「なぜかサザエさんが見たくてたまらなく 
なりました」というのはわかる気がするな 
ぁ。 

♦私は仕事場への片道 35 km ぐらいを愛車のゴ 
キブリ CITY 子ちやんで通勤しているのですが, 
最近ある交差点の信号サイクルが変わったらし 
くて,それまでは大渋滞道路だったのがスイス 
イ走れるようになって喜んでいます。55分ぐら 
いかかっていたのが45分で到着できるようにな 
りました。どうやら,香川県警では試行錯誤を 
繰り返しつつ信号サイクルを決めているようで 
す。12月号の「シミュレーションプログラミン 
グ入門」を県警の人に読ませたいものだ。 Oh ! X の 
読者の中には警察に勤めている人もいるのかな 
あ。ちなみに,私は検察事務官です。 

長谷川聖 (26) 香川県 
そういう試行錯誤はどんどんやってほしい 
ですね。なにしろ渋滞はイライラしますか 
らね。 

♦障害者のコミュニケーション手段として,32 
個のシンボル、を表示し,ひとつのキー操作で並 
ベ替えていくプログラムを X - BASIC で作ってい 
ます。チンタラやっているので完成はまだまだ 
でしよう。……といっている間に PC -9801と 
Macintosh に包囲されてしまいました(島田療育 
園リハビリ部の中の話)。しかし,難波のシャー 


プは単機でも生きています。絶対に。 

深栖嘉哉 (34) 東京都 
最近こういう分野へのコンピュータの利用 
というのも盛んになってきているようです 
が,いいことですよね。 

♦出そう出そうと思っていてアンケートハガキ 
を2力月分ポストに入れられなかった。年寄り 
には時間が立つのが早い。ますます C compiler 
PRO -68 Kver .2.0 がほしい!しかし,私には購 
入できない。いま45,000円は出せないのです。 
この年になって免許のために自動車学校に行く 
なんて。ところで,古い話ですが娘の学校の文 
化祭に行ったら,昔はどこでもあった飛行機研 
究会や鉄道研究会がなくサビシィ。しかし,そ 
の代わりにパソコンクラブでは MZ - 1500を並べ 
てゲームをしていた。横山紘一 (45) 埼玉県 
鉄道研究会は結構まだありそうですけどね。 
飛行機研究会もチラホラとはあるんじやな 
いでしょうか。 

♦つ,ついに私の住むアパートに地上げ屋が来 
た。幸いにして話し合いでケリがつき,来年3 
月までに出ていくことになった。他人事と思っ 
ていたことが我が身に起こるなんて思ってもみ 
ませんでした。 Oh ! X の編集部の皆さんも風邪と 
地上げ屋に気をつけてお仕事がんばってくださ 
い(そのうちにソフトバンクのビルも……)〇 

川田剛 (18) 大阪府 
ここにはまさか地上げ屋は来ないでしょう 
けどねえ。しかし,自宅のアパートとかに 
地上げ屋が来たら結構ビビルだろうなあ。 
♦それにしても, X 68000オリジナルグッズって 
のは一体なんなんでしょうね。キャラクターグ 
ッズなどというのはよく聞くけど,この場合単 
に X 68000の文字が入っているだけじやないで 
すか。もっとも,ライターにはツタンカーメン 
の絵が彫られているが,古代エジプトのファラ 
才のキャラクターグッズというのは聞いたこと 
がないし,前13世紀に彼がアモン=ラー信仰復 
活とテーベ復都を記念して自分のグッズを作っ 
たとも思えない。それでもやっぱりほしくなっ 
てしまう。このようなものを作るなんて,目の 
つけどころがシャープだと思う。 

坂本康 (18) 秋田県 


STUDIO X 165 














あれって結構人気あるんですよね。それほ 
ど皆さん X 68000 を愛しているということ 
の表れでしょうか。 

♦フロ ッピーディスクの磁性面を太陽に透かし 
てみると,かつて小学校の理科の実験で黒下敷 
きを使ってみたのと同じような効果があるでは 
ないか。しかも,メーカーによって色が違う(マ 
クセルのは赤,コニカのはだいだいだった)。う 
一ん, 小学校が懐かしい。宗石茂 (17) 宮崎県 
大事なフロッピーディスタでやるのはなん 
となく怖いから,今度いらないディスクで 
やってみようっと。 

♦最近 ,X 68000に電源を入れるのも面倒。ゲー 
ムソフトがハードディスクにインストールでき 
るようになれば,この際無理をしてでもハード 
ディスクを買いたいが。パソコンゲームはこう 
いった点で手軽でない。起動時間が長い。プロ 
テクトチェックでさらに長い。ゲーム中ディス 
クアクセスで待たされる。しかたないことだが。 
その点,ファミコンだとかは ROM 力一トリッジ 
を差し込んで即プレイできるし,パソコン本体 
のように大きくないのでコタツの中に入れてブ 
レイできたりとかする。まあ,グラフィックと 
かはパソコンとは比較できないが。 

三宅宏典 (18) 岡山県 
やっぱり手経さという点ではファミコンな 
どの ゲーム 機にはかないませんよね。 
♦文化祭でパンドをやった。もちろん,私はキ 
ーボード。オルガンやストリングスでコードを 
白玉で弾いていただけだが,いつもバソコンで 
機械的な音楽ばかり聴いている私にとって,人 
間的なノリはとてもいい刺激になりました。 

P . S . メンバー紹介のときになにかパフォーマ 
ンスをやれというので,ゼビウスを弾いたらバ 
カウヶしました。 干葉浩貴 (18) 宮城県 

ほかの人と演奏するといろいろ勉強にもな 
りますし,いいことですよね。 

♦ハードディスクってどのくらいの振動でクラ 
ッシュするんですかねえ? 私の家の前の道路 
は穴が空いていて,そのうえ制限速度 20 km にも 
かかわらず大型トラックが 60 km ぐらいで通る 
ので,震度丨ぐらいの揺れがするんですよ。こ 
れじゃあ,買っても使えないかも(もっとも, 


メモリが先になると思うけど)。 

高橋定元 (18) 千葉県 
デイスクを読みにいっているときと力 1 に摇 
れがあると,やっぱりやばそうですよね。 
しかし,そんなこと考えているよりも先に 
道路の穴を直してもらったはうがいいので 
はないでしようか。 

♦我が家はインドアゲームを中心に毎晚毎晚わ 
いわいがやがや。最近ではパズルに凝っていま 
す。パズルといっても範囲が広く一時はジグソ 
—パズルに勢•中していました。この頃,パズル 
雑誌(クロスワードを中心にしたもの)の創刊 
が続いています。いま,静かなブームでしよう 
か。 

P . S.X 68000でパズルを解くソフトを作って 
います(あんまり意味ないか)。 

松下博 (52) 愛知県 

適度に頭を使うというのはいいことだし, 
なんといっても気持ちがいいですもんね。 
あんまり難しいものになるとイライラしち 
やうんですけどね。 

♦「 JR 東日本がスキー場を作りました」とか。 
民営化するとこんなにも変わってしまうのかと 
驚きました。民営化したために我が家のすぐ近 
くの新駅設置の話が速いところへいってしまっ 
たというのに。 瀧田智康 (22) 埼玉県 

こんなところにしわ寄せが……。 

♦いつも I 日では読み切れないような内容の 
Oh ! X の編集部の皆様,こんにちは。本屋へ行くと 
よく思うんですが,この Oh ! X に連載された(され 
ている)記事が単行本になっていないのはなぜ 
ですか? 違う雑誌のやつはよく見かけるのに 
……。ぜひ出してください。そういうわけでこ 
れからも“マニアック"な内容の Oh ! X にしてくだ 
さい。 大栗登 (17) 愛知県 

連戟が単行本になっているものもあります 
よ。最近では, 「 X 68000 マシン語プロダラ 
ミング」が出たので,どうぞよろしく。 

♦丨年前に X 68000 を買うまでは,同じ県内にあ 
る矢板の工場を意識することはなかった。そも 
そも,シャープという会社自体を二流としか見 
ていなかった。しかし,いまでは矢板の工場を 
ソンケーの眼差しで見つめ ,「X 68000は栃木生 


まれのパソコンなんだせ」と友人に自信を持っ 
て勧めています。 SX - WINDOW の First - Class - Te . 
chnorogy も宇都宮にあることを知り,ミョーな 
感慨に浸っています。吉葉勝幸 (19) 栃木県 
心の持ちようで,同じものでも違って見え 
るものですよね。 

♦私は消防署に勤務していますが,先日 0 A 機器 
調査ということで,全国の消防署で使用されて 
いるパソコン機種とか,使用内容といった調査 
がありました。その中でパソコン機種一覧表と 
いうものがありました。該当する機種のところ 
に九印をつけるようになっていたのですが,な 
んと X 68000の名前があるではあるまいか。はた 
して,全国の消防署の中で X 68000を使用してい 
る消防署がどれだけあるのか? あれはすばら 
しい!消防署だから昼夜かまわず仕事してい 
るふりをして遊べるではないか。うらやましい。 
私も職場でも X 68000の顔を見たい。 

内匠勇二 (31) 和歌山県 
確かに,使っているところが果たしてある 
のかなという感じはしますよね。結果がわ 
かれば教えてほしいですね。もちろん,そ 
の用途も。 

♦全自動洗灌機を見ていて思ったのだが,いま 
の日本の科学力⑺をもってすれば,全自動炊飯 
器なんてのが出てもいいと思う。入れた米の重 
さと新米,古米かの区別を選んでおけば勝手に 
米を洗って指定の時間になると炊ける。そうそ 
う,もちろんファジイで炊いてね。 

伴哲也 (19) 京都府 
それはいい。米を洗うのは面倒臭いですか 
らね。冬は水が冷たいし。洗うときはやっ 
ぱり回転するんだろうか。 

♦ II 月21日,そうスーパーファミコンの発売日 
である。この日,私の友人である R 君は後輩が 
並ばずに買えたというスーパーファミコン (My 
first SONY のような箱に入っていた)のパッドの 
フタを開けて,回路図を引いたのだ。中には I 
本のジャンパー線も見られず,ミツミの内職の 
おばちゃんがリード線を挟みながらネジを締め 
たのがわかった(笑)。友人は「これでジョイス 
テイックが作れる j といっていたが. L , R ボタン 
はたぶん前代未聞のフットスイッチになりそう 
である。本体はオーナーの許しが得られなかっ 
たので断念。しかし,それにしても F - ZER 0 はハ 
ードの力をまざまざと見せつけてくれた。 

小川純一 (17) 埼玉県 
並ばずに買えたとはなんと幸運な。まだ, 
本体を見たこともないというのに。まあ, 
別にほしくもないからいいもんね(負けお 
しみ)。 

♦へっへっへ。 やっと金がたまったぜ。これで 
I M バイト增設 RAM が手に入る……,と思った 
んだけれど今日はスーパーファミコンの発売日 
ではないか。すまん ,X 68000よ! もう半年待 
ってくれ。 福永啓二 (17) 広島県 

こういう具合に,スーパーファミコンの話 
題というのも結構多かったのですが,12月 
号のハガキで多かったのは“やはり”この 



166 Oh! X 1991.2. 















話題です。 

♦ 12 月号を読むとカラーページにグラディウス 
のようなゲームの画面写真が載っている 。X 
68000のネメシス’90かと思い,よく見るとそれ 
はグラディウス。正方形のような画面から FM 
TOWNS 版グラディウスかと思ったが,記事に目 
を移すと X は urbo 専用と書かれている。しかも, 
デジタル8色で動きはまともだというからすご 
い。やはり ,X Iturbo に不可能はない。きっとそ 
のうちアフター バーナー も移植されることでし 
ょう。 森山伸行 (19) 東京都 

♦ぬうう 。 「THE USER’S WORKS 」。 最初に見た 
とき「なんでいまさら X 68000 のグラディウス 
を?」などと思った。スゴイ。ホントにこれこ 
そ真の “ USER’S WORK " だ。 シャープの バソコ 
ンって誰より6ユーザーに愛されているんだな 
あ。 X 丨や MZ シリーズって幸せかも。ところで, 
1989年10月号の原さん ,X IturboZ 専用シュー 
ティングは? 高橋明 (20) 茨城県 

♦「THE USER’S WORKS 」 を見たとき,感動の 
あまり声も出ずふるえあがってしまった。いろ 
いろな問題を抱えているが,ぜひ世に送り出し 
てほしい作品であった。本当に X Iturbo には不 
可能はないのであろうかと思わせるもの だ (グ 
ラフィックだけでも)。いま,衰えてきている X 


丨の灯を再びともすきっかけともなってほしい。 

松尾保孝 (18) 奈良県 

♦ X Iturbo でグラディウス,それも超美麗なグ 

ラフィック。執着ともいえるほどまでのこだわ 
り,オプション12個でも平気なプログラミング 
テクを抱えて登場した。ぜひとも完成させてほ 
しい。このような作品を見ていると,まだまだ 
XI も捨てがたいですね。なんでもできそうな気 
がします。私も大学にはいれたらなにか作ろう 
と思います。改良版 X -700 もどきを使って……〇 
ふっふっふ。 萩野友隆 (17) 京都府 

♦す,すごすぎる……。同人ソフトなんて興味 
ないもんね,なんて読み飛ばそうとしていたら, 

「アレ」 ですものね。 「アマチュアの 鑑! よ 
っ, 大将ニクイね っ, この!」という感じ⑺で 
す。とにかく作者の横内君には「がんばって完 
成してください」,そういってあげたいと思う22 
歳の大学生なのでした。斎藤修 (22) 宮城県 

♦ 12 月号をぺらぺらとめくって読んでいたら, 
いきなりグラディウスの写真が載っていた。ゲ 
ーム特集なのかなあとよく読んでみると,アマ 
チュアプログラマが作った X Iturbo 用のグラデ 
ィウスであった。本当にあのデジタル8色の X 
Iturbo で作ったのかと疑うくらいだ。実際に動 
いているところや BGM を聞いていないからわか 








らないが,機会があればぜひプレイしてみたい 
と思う。 X 68000 のグラディウスと見まちがえて 
しまった。ノーマル X 丨でもできたらなあ……, 
でもすごい。 大田哲矢 (18) 神奈川県 

ここに敉せたのはほんの一部で,本当にす 
ごい反響でした。まあ,あの出来を見れば 
驚いたり感動したりするのは,当然のこと 
といえば当然なんですが。横内君もこれを 
読んで,またプログラミングに励むことで 
しよう。 


ほ'^各の掲示眠 


•掲載ご希望の方は,官製ハガキに項目(売る•買う•氏名•年齢•連 
絡方法…… ) を明記してお申し込みください。 

•ソフトの売買,交換については,いっさい掲戤できません。 
•取り引きについては当編集部では資任を負いかねます。 

•応募者多数の場合,掲載できない場合もあります。 

•紹介を希望されるサークルは必ず会誌の見本を送ってください。 


仲間 

★ X 68000でフォントの研究開発を行っている「夕 
イブ•ラボ j では会員とスタッフを募集してい 
ます。日本語版組 システム TeX などを中心に活 
動しながら、不定期で ディスク 会報も発行して 
います。62円切手同封のうえ、下記まで。〒910 
福井県福井市渡町 358-4 平木敬太郎 (23) 

★「NANNO CLUB PRO-68X 」 では、 X 68000 ユーザ 
一を 対象に南野陽子 ファンを 募集。活動は SX- 
WIND 0 W の アプリケーションの 配布、 パソコン 
通信でのリアルタイム情報提供など。南野陽子 
情報日本一宣言中です。申し込みは62円切手同 
封のうえ封害で。〒332埼玉県川口市川口 6-5 
-40 中銀マンション605武山智裕 (18) 

|売リます 

★ CZ -8 PK 9(24 ピン80析,付属品,箱あり)を3万 
5千円 。X Iturbo テクニカルマニュアル(シヤー 
プ監修 AZ ビシ コム刊)を5千円。 PC - E 200( ポ 
ヶ コン, Z 80 CPU , 32 K バイト)を5千円。いずれ 
も送料込み。連絡は往復ハガキでお願いします。 
〒183東京都府中市多磨町卜 34-7 (株)ジャコ 
ム多磨寮山口幸一 (24) 


|買います 

★シャーブカラーイメー ジユニット 「 IO -735 X 」 を 
8万円ぐらいで。安い人優先です。オプション 
( X 68000 用ケーブル等)をつけてくれる方は多 
少値上げします。連絡は往復ハガキで。〒98卜 
31宮城県仙台市泉区長命ヶ丘 6-6-12 石川太 
朗 (15) 

★熱転写 カラー 漢字プリンタ 「 CZ -8 PC 3」 を2万円 
以内で(安価優先)。 RS -232 C , マウスボード 「CZ 
-8 BM 2 j + マウス 「 CZ -8 NM 2」 を7千円前後で0 
連絡は状態,付属品の有無,電話番号を明記の 
うえ,往復ハガキで。〒319-01茨城県新治郡 
八郷町東成井1690菱沼義博 (16) 

★ X 68000 用数値演算プロセッサボード 「 CZ -6 
BPlj を3万円前後で。プリンタ 「 CZ -8 PC 4」 4 
万5千円前後で。どちらも取扱説明窨,付属品 
ありのものを。連絡は希望価格を書いてハガキ 
で。〒731-42広島県安芸郡熊野町柿追49長 
石裕行 (21) 

★ X 丨用フロッビーデイスクドライブ 「 CZ -503 F 」 
か 「 CZ -502 F 」 を3万円以内で。漢字 ROM 「 CZ - 
8 BK 2 j を5千円前後で。また, XI 用のプリンタ 
を丨万円から丨万5千円で。完動品なら可。ど 


れも送料込み。連絡はハガキで。〒065北海道 
札幌市東区北 I 丨条東4 丁目荒井真公人 (18) 

★カラーイメージユニット 「 CZ -6 VTI 」 を2万5千 
円で。 アスキーの テクニカル データ ブックを定 
価以上で。連絡はハガキで。 亍 923石川県小松 
市飴屋町21紙山満 (17) 

y くックナンバー 

★ Oh ! Xl 990 年 I 、3、5月号広告などの切り抜き可。 
定価で譲ってくださる方。送料はこちらで持ち 
ますのでよろしく。連絡はハガキで。〒813福 
岡県福岡市東区名岛 3-29-16 仁泉大輔 (19) 

★ Oh ! X の1989年6月号を送料込み丨,500円で買い 
ます。切り抜き不可。少々の汚れは可。連絡は 
ハガキで。〒729-24広島県豊田郡安芸津町風 
早 649-366 提岡真二 (17) 

★ Oh ! MZ の1985年 I 、4、6〜9月号を送料込み各千 
円で。切り抜き不可。連絡は往復ハガキで。気 
長に待ちます。〒61丨京都府宇治市宇治蔭山55 
番地 33 IA 榊卓也 (24) 

★ Oh ! MZl 987 年5、6月号, Oh ! Xl 988 年7月号を送料 
込み各1,500円で。切り抜き不可。連絡は往復ハ 
ガキで。〒123東京都足立区江北 7-12-1-506 
村松秀雄 (37) 


STUDIO X 167 

















編篥室から 


from E J 1 


□RIVE ON 

このコーナー では, 本誌年間モニタの方々の 
ご意見を紹介しています。今月は12月号の内 
容に関するレポートです。 

• 「アナログジョイスティックの製作 j は参 
考程度に,ということで割り切って読ませて 
いただきました。 

回路の規模も結構大きなものですし,普通 
Z 80 を使うならシングルポードコンピュータ 
を買ってきますしね。また, ROM ライタが必要 
であることで,多くの人にとって非現実の世 
界になってしまったでしようし。 

あくまで「体験記 j であり,製作してもら 
うことが目的ではないという意味では大成功 
だと思います。リストだってダンプではなく 
ソースで(ついでに ZEDA 用)であることもそ 
の主旨に沿ったものであったといえるでしよ 
う。時間の都合で私はまだこのような Z 80 を 
使ったコントローラを作ったことはありませ 
んが,いずれ作るときには大変參考になると 
思います。 

アナログスティックは,あのメカ部がネッ 
クになっていままで製作できなかった人もい 
たと思います。私もラジコンスティックの回 
路をアレンジして,完全ハード版サイバース 
ディックを考え,回路図まではできていたん 
ですが,例のボリューム式のジョイスティッ 
クが手に入らなかったことで計画を断念しま 
した。 Apple II や VIC - 1001の時代には,日本橋 
にもパドル用にと売っていたのですが,いま 
はさすがになし。やむをえず親しいパーツ屋 
の人に「メーカーさんに分けてもらってくだ 
さい」とお願いする始末。入手しにくいパー 
ツであることは間違いないようです。 

サイバースティックは23,800円でも, XE-I 
AP なら I 万円程度で買うことができます。い 
さぎよく完成品を買うほうが賢いんでしよう 
ね。どちらにしても,こういったトランジス 
夕技術にしか掲載されないような記事がこの 
Oh ! X に載ったことは, Oh ! X のキャラクターが 
反映されていて安心できました。 

浅野憲 (19) X I turbo III f X IF model 20, FM - 
77 L 2, M 5 Jr . 大阪府 

•特集 「 XC のための傾向と対策」について。 
記事の レベルは いまくらいで適当だと思いま 
す。本気で始めようと思ったら,たいていな 
にかしらの本を購入するでしようし,いまく 
らいの記事なら C 言語に入門しようかと迷っ 
ている人を誘い込むのには適度な難易度だと 
思います。あと,毎年丨回はこの関係の記寧 
があるのですから,半年ごと(または丨年ご 


と)の課題を作ってプログラムを募集するの 
もいいのではないかと思います。 

中川比呂志(丨 9) X 68000, Xlcs 東京都 
•新連載「シミュレーションプログラミング 
入門」について。冒頭で月産台数が3ケタも 
出るかどうか,あやしいような車が出てきた 
のには思わず笑ってしまったが,車の交通を 
テーマに 持ってきたのは正解だと思う。日頃, 
交通渋滞を経験せずにすむ人間でも,赤信号 
で止まっていらいらしながら待つことは,ご 
く一部の例外(離島で信号がないとか,そも 
そも車がないとか)を除いて誰もが経験して 
いるのだから,関心を持たないわけがない。 
また,ほかの交通機関(たとえば鉄道)のよ 
うに特別なルールを知っている必要性もなく 
て,ごくごく日常的な知識の範囲で理解でき 
るのだから,これはすごく いい テーマ選びだ 
と思う。 

「アナログ ジョイスティックの製作」 につ 
いて。 ROM ライタがないとお話にならないと 
いうことを別にして考えると,12月号のこの 
記事はいろいろと考えさせられることがあっ 
て,面白かったと思う。なにより 「 Z 80 は RAM 
なしでも使える」というのが気に入った 。 RAM 
と一緒になって使われているものしか見たこ 
とがなかったせいもあるが, 「 CPU とはメモリ 
なしでは使えない」という固定概念にとらわ 
れてしまっていた自分が妙に情けなくなって 
しまった。 

土谷興正 (19) X IG , MSX 2 兵庫県 
• C 言語について。実際に C をフルセットで 
ガンガン使ったことはないのでたいしたこと 


ごめんなさいの 



1月号 Z ’ s-EX 

Z’sSTAFF ver . 丨 .0 では Z ’ s - EX で拡張されたウ 
ィンドウの表示がおかしくなるなどの症状が 
出ています。原因は画面の初期化関係に違い 
があるためです。基本的にはバージヨンアツ 
ブサービスを受けることをお勧めしますが, 
ver . I . O で利用したい場合には , Zs EX . X を起動 


バグに関するお問い合わせは 

〇的 (54 的)13110■通) 

月〜金曜日16 : 00〜18 : 00 


はいえないが, SmaH - C を使ったかぎりではマ 
クロがいっぱい使えるアセンブラみたいで便 
利だと思う。ただ,一応標準規格とも呼べる 
ANSI の C が登場した以上は,過去のしがらみ 
を捨ててフルコンパチ(アッパーコンパチは 
不可)にしないと, BASIC のようにグチヤグチ 
ヤになっていってしまう可能性が高いと思う。 

特に, MS - C と QUICK - C と TURB 0- C の3者は 
足並みを揃えるべきだと感じるが,いまのと 
ころは X 68000には関係ないですね。 

高村信 (20) XI turbo model 30, PC -8001 mk II 
東京都 

• 「アナログ ジョイス ティ ックの 製作 j につ 
いて。ハードについてはわかりませんが,体 
験したことをそのまま書き連ねていくことに 
よって,読者のほうにしてみれば実際に作る 
作らないは別として作ったような気分,ある 
いは作りたい気分になるのではないのでしよ 
うか0 

安井百合江 (16) X 68000 PRO 愛知県 
_ X | turbo 用「グラディウス」について 。XI 
turbo ユーザー にとり,いい刺激になったので 
はないでしようか。 MZ -700 ユーザーが 「スぺ 
ースハリアー」を見て奮起したように,きっ 
とこれで X Iturbo ユーザー も「 XI もまだま 
だ j と奮起し,昔作りかけで挫折してしまっ 
たブログラムを引きずり出してくる気が起き 
たのではないでしようか。諸々の問題はあり 
ましようが ,X Iturbo ユーザーの 起爆剤とな 
ったであろう,この作品を載せたことは正解 
であったと思います。 

高橋毅 (19) X 68000 PR 0. MSX 2 埼玉県 


する前に, 

SCREEN 1,3, I 

を実行して画面を初期化してください。 

1月号 DICTOO し 

ディスクには開発途中バージョンが入ってし 
まいました。本誌に掲載された完成バージョ 
ンは4月号の付録ディスクにあらためて収録 
する予定です。申し訳ありませんでした。 

12月号(で)のショートプロぱ一てぃ 
とろける. X の作者名が間違っていました。 
正しくは市岡孝浩さんです。大変ご迷惑をか 
けました。お詫びいたします。 


お問い合わせは原則として,本誌のバグ情 
報のみに限らせていただきます。入力法,操 
作法などはマニュアルをよくお読みください。 

また,よくアド ベンチヤーゲームの 解答を 
求めるお電話をいただきますが,本誌ではい 
つさいお答えできません。ご了承ください。 


168 Oh ! X 1991 .2. 
























X 6 的 00 ならではの 
グラフィツクパワー 
を追求しよラ 

▼厳しい年末進行 1 のなか,お届けしたグラフ 
ィック特集ですがいかがでしたでしようか。 
大きな彭見力を持つ X 68000 ですが,それだけ 
に消費する資源もへビーです。また,それを 
扱う人間の能力,体力,時間も大変なもの。 
今回は丹明彦氏の大活躍で切り抜けたものの, 
編集部ではグラフィック関係を担当してくれ 
るスタッフを/必要としています。力を貸して 
くれる方,ぜひご連絡ください。 

▼ I 月号に引き続いて特集した SX-WINDOW 
ですが,プログラミングの解説記事は I 月号 
の付!录ディスクに収録した資^斗をもとに行っ 
てます。ディスクには各マネージャ (GRAPH 
MAN など)の働きを記したドキュメントファ 
イル , S X コール利用のためのリファレンス, 
また C 言語で必要となるライブラリおよびイ 
ンクルードファイルなどが収められています。 
これらは今後ともウインドウプログラミング 


の基礎資料として必要ですので,ぜひとも常 
備しておいてください。丨月号をお持ちでな 
い方は最寄りの書店でお申し込みください。 
なお,バックナンバーの在庫は I 年間を目安 
に確保しておりますが,号によっては早く品 
切れになってしまう場合もありますのでご了 
承ください。 

▼村田敏幸さんの 「 X 68000 マシン語プログラ 
ミング」が単行^本イ匕されましたが,好 fF につ 
き品切れとなる書店が続出し,まだお求めに 
なれない方も多いようです(ごめんなさい)。 
すでに重版がかかっておりますので,お待ち 
の方もまもなく入手できることと思います。 
また,お読みになったご意見ご感想などもお 
寄せください。 

▼今月の 「 PASCAL プログラミングへの招待」 
はお休みさせていただきます。また,「清水和 
人のプログラミング道場」は清水和人氏がド 
イツに滞在中のため通が中断しています。 
春には帰国の予定ですのでしばらくお待ちく 
ださい。なお,予告にありました Z - BASIC 用 
「サザエさん劇中曲」は版権の問題で掲載で 
きませんでした。お託びいたします。 


籲原稿には,住所.氏名•年齢•職業•連絡 
先電話番号 • 機種.使用言語.必要な周辺 
機器•マイコン歴を明言己してください。 

鲁プログラムを投稿される方は,詳しい内容 
の説明,利用法,できればフローチヤート, 
変数表,メモリマップ(マシン語の場合) 

に,參考文献を明記し,プログラムをセー 
ブしたテープ(ディスケット)を添えてお 
送りください。また,掲載にあたっては, 
編集上の都合により加筆修正させていただ 
くことがありますのでご了承ください。 

春ハードの製作などを投稿される方は,詳し 
い内容の説明のほかに回路図,部品表,で 
きれば実体配線図も添えてください。編集 
室で検討のうえ,製作したハードが必要な 
場合はご連絡いたします。 

♦投稿者のモラルとして,他誌との二重投稿, 
他機種用プログラムを単に移植したものは 
固くお断りいたします。 

あて先 

〒108東京都港区高輪 2-19-13 NS 高輪ビル 
ソフトバンク出版部 

Oh ! X 「©©@®j 係 


S 



F T • B R E A K 


► 最近《ドラゴン セ イノ<一が横浜の ゲームセ ンター 
に入った。と,そこにはドラスピ,フエリオスでク 
リアを競ったヤッがいた。前回,2回ともそいつに 
負けているので,「今回こそは勝ってやる j と,意気 
込んでプレイしているが,現在彼は最終面そして 
私は6面でハマっている。う〜ん,どうやら勝負は 
見えているようだな。 ( M ) 

►年末進行のおかげで,徹夜で)^を書くことにな 
った。そうと決めてしまうと,なんかそれだけで物 
事が解決したような気分になってしまって,ちっと 
も進まない。しかも,ここは誘惑材^14にはことかか 
ないし。おまけに,徹夜ボケの原稿は怖くて自分で 
も読めない。かくしてもう一晩徹夜するはめに。と 
ほほ。 (浦) 

►この本は2月号だな。「私の触日は2月です。さ 
て何日でしよう?」という問題を小学生以来出し続 
けているが,いままで一発で当てられた確率は7割 
を越えている。特に女の子の正当率が高い。そして, 
そのあとの言葉も5割がた同じである。「どっちのブ 
レゼントかわからないよね〜」う〜ん,今年も冬が 
やってきた。 (亀) 

►車で編集室に通うと,終電の心配をする必要がな 
いのて気が楽になる。おかげで帰りが明け方になる 
ことも多くて,がらがらの道をカッ飛ばして帰るの 
力癖になってしまった。近ごろ自分でも運転マナー 
か庵くなったと感じている。免許も更新することだ 
し,安全運転を志していこうと思う。 (半年 

で14,000 km 走ったダークグリーンシルビアの H . K .) 


►この丨年を振り返ってみると,海外のゲーム(の移 
植作品)にばかり熱中していたように思うのだ。こん 
なことではいけなし、のだが,面白いものは面白い。 
最近は海外ソフトの移植が流行のようだが,ただ上 
っ面の移植だけでなく,その底に •; 荒れるセンスをつ 
かまえ,自分のものにしていきたい。とりあえずは 
腐った移植が山ほど出ないことを祈ろう。 ( A . T .) 
►本文中では「雪不足 j と書いたが,どうやらよう 
やく雪か牌ってきたそうだ。降るほうに予想がはず 
れるぶんには大歓迎0今日,仕事を終え「イツパ j 
栂池に向かう。ところで,ついに「ニューロ」家電 
なるモノか 生0このぶんだと次は「バイオ」かな。 
でもバイオの次にはいったい何がくるのだろう。皆 
さんはどう思われますか。 ( C ) 

►にもかかわらず,何年か振りに TV ドラマを見た。 
クリスマス.イブ。複雑な男女関係が,三角関係ど 
ころか四角,五角と増えていき,どんどん泥沼へは 
まっていくすごし、話だ。私は思った。このまま六角, 
七角,と増えていけば n 角の n が十分大きいと円に近 
似できるのと同様すべてが丸く治まるのではない 
だろうか,とね〇誰か,実験してみません? ( K ) 
►スー/、•ーファミコンをなぜか買うことができた。 
が,箱を開けてびっくり。 AC アダプタや RF ケーブル 
が入っていない。ファミコンのものが代用できるか 
らいいものの,画面のすごさを売りにするならビデ 
オケーブルくらいは付属してほしかった。まあ,マ 
リオ程度のソフト(絵が汚いぞ)しかできないのな 
らそれでもいいか。 (少し後悔してる KO ) 


► 199畔もなんとか無事に終わり(そうで),とりあ 

えずはひと安心。就職という転機の年だったわけだ 
が,なんとなく日々に追われ,あっという間に過ぎ 
去ってしまった。生まれてこのかた,ボーッとしな 
がらのんびりと丨年を過ごしていたので,こんなに 
早く I 年が®ぎることはなかったのに。しかし,と 
りあえず充実した年ではあったなあ。 ( A ) 

► ドアの外でガヤガヤと話し声。なんだろ,と思っ 
てたら,あろうことか突然人ん家のドアを掃除し始 
めた!な,なんだあ? 「あのお j 「あ,すいませ 
んねぇ,連絡しないで」。なんと,同じ階段の主婦連 
が勢揃い 3 なんでこの人たちが階段掃除してんの 
よ!月 I 万円近くの管理費はどこいってんの? 
(それでも手伝えなくってゴメンナサイと思う E . O .) 
►同人誌を買うにも合い言葉が必要な今日この頃。 

POPULOUS はマニュアルを見なくても操作できた 
のに POWER MONGER はいまいちわかりにくい。動 
きは軽い。もっと重た I 、ゲームだと思し、込んでいた 
のだが。しかし,膨大な効果音とグラフィック,こ 
れでディスク I 枚沮要 5 I 2 K / くイト RAM ……イギリ 
ス人恐るべし ( U ) 

► 24 日の クリスマス イブは編集部で徹夜だった。そ 

のまんま25日も徹夜になりそうだったが,かろうじ 
て夕方7時ごろに家に戻って睡眠をとった。そして 
終電で出勤。クリ スマス 音楽のカセットをかけなが 
ら瞧部に向かった。ああ,それなのに,会吐のあ 
るビルの玄関に待っていたのは,大きな憎らしい門 
松であった。ううっ……〇 GE 月嫌いの丁) 


編集室から 169 











microOdyssey 

ふと目が覚めると,約束の時間はとうに過ぎ 
ていた。げげ一っ,やばい! 指が憶えた Tele 
phone number を急いでなぞる。「はい, Oh ! X です」 
「あの, ぉ〜, 寝坊しました。すみません」「そん 
なこったろうと思った」,あらま . 。 

受話器を置いたら,なんかホッとした。時計 
は AM 7 : 38を指している。ということは,2晚徹 
夜していたとはいえ7時間も眠ってたのか! 
ここんとこ忙しかったし,いろいろあったから 
なぁ。あ,レーザーディスクひと晚回しっぱな 
し! ま,いいか。このまま見ちゃおうっと。 

雲か,流れてく,早く,早く . 。 . まる 

でいまのあたしみたい。流されるまま流されて, 
何処へたどり着くのかさえわからない。……マ 
ズイな,なんか nervous になってる 。 nervous 
breakdown てヤツかな。きっとそうだね。だっ 
て,1990年があたしにとって長かったのか短か 
ったのかすら,もうわからないんだもの。いろ 
いろなことがあったのは確かだけど。 

でも,ほんとにこの丨年間,自分自身のため 
になにかしたことってあっただろうか。 

空が,青い,文字どおりの , Sky blue ……。こ 
んなきれいな空,最後に見たのはいつだったろ 
う。見上げればいつでもあったはずなのに。灰 
色に見えたのは,あたしの心のせい? モニタ 
に映し出された空は,子供の頃に見ていた色と 
おんなじで,ほんとに青くて,ただそれだけな 
んだけど,涙が出そう。あ,出ちゃった。 

やさしくて力強い,空の色から伝わってくる 
そんな思いが,胸に刺さってずきずきする。 

モニタには,人波に逆らってこちらに向かっ 
てくる彼ら。それはまるで彼らの生きざまを表 
しているかのよう。流れに逆らってでも自分ら 
しく生きる。つらくないわけがない。それでも 
彼らは笑っている。なぜかはあたしが,あたし 
自身の身体が,いちばんよく知ってる……。 

そばにあるキーボードの鍵盤に,そっと触れ 
る。なんだかとても懐かしい気がする。ギター 
を手に取る。指に触れる弦がちょっぴり痛いや。 
子供の頃から音楽が好きだった。 Melody さえあ 
れば幸せ,なければ自分で唄っていた。気に入 
らなきゃ自分で作って。音楽をもっと表現した 
くてやった Musical , 自分の Promotion video に使 
いたくて勉強した CG 。 一生懸命だった頃。 

ほんとに好きなことがあれば,なんだってや 
れる。 この一 瞬は二度と来ない,だから死んで 
るように生きたくないって,そう思ってたはず 
なのに。いつのまにか流れに逆らうことをやめ, 
濁流の中でもがいている。なんか滑稽だね。 

いま,やっと見えてきた,ほんとうにやりた 
いこと。あたしにしかできないこと。 

人を愛して別れていくなかで,あたしは時間 
を止める方法を教わった。もう25だから,そん 
なこと考えていたら,一歩も前に進めやしない。 
傷つくことも多いけど,うれしいこともたくさ 
んある。いつでも一生懸命でいたい。たったひ 
とつしかない,宇宙から見たらほんとにちっぼ 

けだけど,あたしの microOdyssey. 0 

ぎゃ〜,もうこんな時間! 早く会社いかな 
くっちゃ。っと,レーザーディスクは消して。 
ほうら,外には真っ青な空が広がっているよ。 

(12/24, ひとりの X,mas eve に。 E.O.) 
氺 LASERDISC is “TWO ALONE UP-BEAT” by 
VICTOR MUSICAL INDUSTRIES.INC. 


1991 年 3 月号 2 月 18 日 (月)発売 

特集 MIDI & MUSIC PROCESSING 

MIDI 楽器制御の基礎知識 



SX -14 /fNDOlV プログラミング 


X68000CARDDRV 用 カードゲーム EIGHT 

Oh!X LIVE in *91 

X 68000 用戦いの兜 



XI 用 BIRTHDAY 



パックナンバー常備店 

神奈川 厚木 

有隣堂厚木店 

平塚 

0462(23)41 11 
文教堂四の宮店 

0463(54)2880 



干葉 柏 

新星堂カルチェ 5 

0471 (64)8551 


船橋 

リブ ロ船橋 店 

東京 神保町 三省堂神田本店 5 F 


0474(25)01 11 

03(3233)3312 

// 

芳林堂書店津田沼店 

// 書 泉ブックマート BI 


0474(78)3737 

03(3294)001 1 

干葉 

多田屋千葉セントラルブラザ店 

// 書 泉グランデ 5 F 


0472(24)1333 

03(3295)001 1 

埼玉 川越 

黒 田窨店 

秋葉原 T-ZONE 7 F ブックゾーン 


0492(25)3138 

03(3257)2660 

Jl | P 

岩 渕窨店 

八重 洲 八重 洲ブックセンタ ー 3 F 


0482(52)2190 

03(3281)181 1 

茨城 水戸 

川又窨店駅前店 

新宿 紀伊国屋窨店本店 


0292(31)0102 

03(3354)0131 

大阪 北区 

旭屋書店本店 

高 田馬場未来堂 害 店 


06(313)1191 

03(3200)9185 

都 島 区 

駸 々堂京 橋 店 

渋谷 大盛堂 害 店 


06(353)2413 

03(3463)051 1 

京都 中京区 

オーム社窨店 

池袋 リブロ池袋店 


075(221)0280 

03(3981)011 1 

愛知 名古屋 

5 省堂名古屋店 

" 西武百貨店 9 F 


052(562)0077 

コンビュータ•フオーラム 

// 

バソコン 2 上前津店 

03(3981)0111 


052(251)8334 

神奈川横浜 有隣堂横浜駅西口店 

刈谷 

三洋堂 香 店刈谷店 

045(311)6265 


0566(24) 1134 

" 有隣堂 ルミネ 店 

長野 飯田 

平安堂 飯田 店 

045(453)081 1 


0265(24)4545 

藤 沢 有隣堂藤 沢 店 

北海道 室閫 

室蘭工業大学生協 

0466(26) 1411 


0143(44)6060 

定期 購睇の お知らせ 

少し前にご通知いたします。継続希望の方は, 
上記と同じ要領でお申し込みください。 

海外送付ご 希望の 方へ 

Oh!X の定期購読をご希望の方は織じ込みの 

本誌の海外発送代理店,日本 IPS (株)にお 

振替用紙の「申込 窨」 撊 にある「新規」「継 

申し込みください。なお,購読料金は郵送方 

続」のいずれかに〇をつけ,必要事項を明記 

法,地域によっ 

て異なりますので, 下記 宛必 

のうえ,郵便局で購読料をお振り込みくださ 

ずお問い合わせください。 

い。その際渡される半券は領収 窨 になってい 

日本 IPS 株式会社 

ますので,大切に保管してください。なお, 

〒101 東京都千代田区飯田 橋 3-1 卜 6 

すでに定期購読をご利用の方には期限終了の 

003(3238)0700 

■】h 画 XX パ号 



■ 1991年2月丨日発行定価560円(本体544円) 


■発行 人孫正義 
■編集 人橋本五郎 
■発売元 ソフトバンク株式会社 



■出版 事業部 〒1〇8東京都港区高輪 2-19-13 NS 高輪ビル 


Oh!X 編集部003 (5488) 1309 


出版営業部 003(5488)1360 FAX 03(5488)1364 

広告センター Q 03(3297)0181 


■印刷凸版印刷株式会社 



©199! SOFTBANK CORP . 雑誌02179 -2 本誌からの無断転載を禁じます。 

落丁•乱丁の場合はお取り替えいたします。 




170 Oh! X 1991.2. 



















バックナンバー案内 


ここには1990年2月号から1991年 I 月号までをご紹 
介しました。現在1989年12, 1990年9〜12, 1991年 
I 月号までの在庫がございます。バックナンバーお 
よび定期購読のお申し込み方法については,188ペー 
ジを参照してください。 






iihiSJ 

m 


OhfXl 




uhlXK 


2 月号(品切れ) 

特集画像圧縮への アプローチ 

H ショートプロぱ一てい / Z 80 ,s Bar / DoGA-CGA 

X 68000 マシン語 / C 調言語講座/ X - BASIC 調理実習 
• X 68000 用ゲームプログラム Gon Gon 
參 MZ - 700用紙芝居 Eyelarth 
LIVE in '90 オーダイン/魔女の宅急便 
THE SOFTOUCH A - JAX / フラッピ ー2/ 夢幻戦士ヴァリス通 
マ ジッタ/、•レッ ト/ Mu -1 /CYBERNOTE PRO -68 K 
全機種共通システム超小型コンパイラ TTO + 

3月号(品切れ) 

特集 MUSIC アドべンチャー 
X 68000 用 MIDI ドライバ&音源エディタ 
なんでも鳴らせる 0 PMD . X / MML を楽譜データに 

0 ショー ト プロ ば一てい / Z 8 (Ts Bar / DoGA-CGA 
C 調言語講座/ X - BASIC 調理実習 
參 Xl / turbo シミュレーション CRISIS in Tokyo 
LIVE in *90 パワードリフト/スキーム/となりのトトロ 
THE SOFTOUCH ナイトアームス 7 斬/ダンジョンマスター 
全機種共通システム超多機能アセンブラ OHM - Z 80 


4月号(品切れ) 

特集ゲームシステム文学誌 
1989年度 GAME OF THE YEAR 発表 

H ショートブロぱ一てい / Z 80 ,s Bar / DoGA-CGA 

X - BASIC 調理実習 / C 調言語講座/ X 68000 マシン語 
鲁 X 1. MZ - 2000/2500用 RPG The Cave of Dalk 
•うわさの6804 0, ついに登場 
LIVE in '90 パーニングフォース (0 PMD 対応) 

THE SOFTOUCH The Fille Professor/HOST PRO -68 K 
全檐檯共通システムファジィコンピュータシミュレータト MY 


5月 号 (品切れ) 

特集 BASIC プログラミング 
第5回言わせてくれなくちゃだワ 
ショー トプロ ぱ一 てい /Z80’s Bar 
X-BASIC 調理 実習/ X68000 マシン語プログラミング 
•新機種 X68000SUPER-HD/EXPERTD/PROH 
•ラジコンスティックの 製作 
LIVE in *90 TURBO OUTRUN 
THE SOFTOUCH 天下統一/ ポピユラス/ Hyperword 
全機種共通システム インタプリタ 言語 STACK 

6月咢(品切れ) 

特集剌刊8周年記念 PRO -68 K (付録 5"2 HD ) 
Oh !X アンケート結果大分析大会 

ショートプロば一てい /Z80,s Bar/PurePASCAL 
X-BASIC 調理実習/ X68000 マシン語プログラミング 

• XI turbo 用コマンドシェルシミユレータ 
籲ハードウヱアエ作入門 

LIVE in ’90ナイトアームズ/悪«城伝説/この木なんの木 
THE SOFTOUCH 三国志 H/FAR SIDE MOON/ グラナダ 
全機種共通システム X68000 用 S-OS“SWORD ••他 

7月号(品切れ) 

特集マシン語への第一歩 
X 68000 SUPER-HD 試用レポート 

ショートプロ ば一てい /Z80’s Bar/DoGA-CGA 
X- BASIC 調理実習 /PurePASCAL 

• INTEGRAL XI—— ノーマル XI への対応 
籲ハードウェアエ作入門 

LIVE in *90 夢幻戰士ヴァリス11/トッカータとフーガニ短調 
THE SOFTOUCH サーク/あ一くしゅ/ダウンタウン熱血物語 
全機種共通システムリロケータブルアセンブラ WZD 






日月号(品切れ) 

特集 ADVANCED 2 D GRAPHICS 
1 00号記念特別モニタプレゼント 

I ショートプロぱ一てい / Z 80 ’s Bar INTEGRAL XI 
X - BASIC 調理実習/ X 68000 マシン語プログラミング 
PurePASCAL // 、ードウェアエ作入門 
1 X 68000 用画像回転プログラム XROT 0 .X 


I 


LIVE in '90 OMENS OF LOVE ENDLESS RAIN ダートフォツクス 
THE SOFTOUCH 大航海時代ウルテイマ V プロミストランド 
全機種共通システムリンカ WLK 



iJU^U 


9月号 


特集1日本語を処理するための序章 


特集2 ADVANCED 2 D GRAPHICS 


H ショートプロは•一てぃ / Z 80 ,s Bar / DOGA-CGA 
_ X - BASIC 調理実習/マシン語プログラミング 
13 PurePASCAL / ハードウェアエ作入門 
籲清水和人流プログラミング道場 


LIVE in *90 風の谷のナウシカ/ラジオ体操第一 


THE SOFTOUCH T & T / D - Again / シムシティー/ギャラガ’88ほか 
全機種共通システム BILLIARDS 


ahiXI 



10月号 


特集電子音楽術入門 

I ショート プロ ば一てぃ / Z 80 ,s Bar / D 6 GA-CGA 
マシン語プログラミング/ハードウェアエ作入門 
清水和人流プログラミング道場 
• 荻窪圭の大人のための X 68000 
• 中森章のようこそここへ C 言語 
LIVE in *90 Rise And Fall / PARADOX / キュービー 3 分クッキング 


1 


THE SOFTOUCH ワールト•コートルーンワース閬の血族提督の決断 
全機種共通システムライブラリアン WLB 


11月号 

特集理科系の GAME REVIEW 


I ZfiO's Bar / D 5 GA . CGA / カードゲーム 
マシン語プログラミング/ハードウェアエ作入門 
PurePASCAL / X-BASIC 調理実習 
ようこそここへ C 言言吾 / INTEGRAL XI 
荻窪圭の大人のための X 68000 
LIVE in '90 ピラミッドソーサリアン/ザ•スキーム 
THE SOFTOUCH SPECIAL ラグ-ン/幻獣鬼/サイバリオン/ GUNSHIP 他 
全機檯共通システムスクリーンエディタ EDC-T 


aiiiXS 



12月号 

特集 xc のための傾向と対策 

X-BASIC プログラミング調理実習/ハードウヱアエ作入門 
マシン語プログラミング/ショ ー トプロば 一て ぃ /Z80’s Bar 
大人のための X68000/ ようこそ ここへ C 言語/ INTEGRAL XI 
•シミュレーションプログラミンクフ 
• 特別企画アナログジョイスティックの製作 
LIVE in '90 グラディウス 111/ メタルサイト 
THE SOFTOUCH SPECIAL イメージファイト/ジェミニウイング/ NAI0US 他 
全機種共通システム STACK コンパイラ 



CL^ 轉 ■••nsx-woow 



1月号 

特集急接近! SX-WINDOW 
特別付録謹賀新年 PRO -68 K (5"2 HD ) 

ハードウェアエ作入門/シミュレーションプ□グラミング入門 
D 6 GA . CGA / ショートプロば一てい/大人のための X 68000 
PurePASCAL 清水和人流プログラミング道場 X-BASIC 調理実習 
LIVE in *91 めぞん一刻/涙で綴るパパへの手紙 
THE SOFTOUCH ソル•フイース銀英伝 II 絞ダンジョン.マスタ-他 
製品紹介光磁気ディスク CZ -6 M 0 I 
全機種共通システムブロックアクションゲーム COLUMNS 



Oh! X 1991.2. 171 























// 

// 

if 

ft 

柏 市 

// 

松戸市 

// 

橫浜市 

// 

// 

// 

// 

// 

// 

// 

// 

// 

川崎市 

// 

// 

// 

鎌倉市 

" 

憒湏賀市 

藤沢市 

// 

// 

茅ヶ崎市 
平塚市 

// 

小田原市 

// 

ft 


相樸原市 
渾久并郡 


小金并市 
国分寺市 


武蔵野市 

// 

/〆 


〈東京〉 
千代田区 

// 

// 

// 

// 

" 

// 

// 

// 

// 

// 

中央区 

// 

// 

港 区 

// 

// 

// 

品川区 
" 

渋谷区 

// 

// 

// 

// 

新宿区 

// 

// 

// 

// 

// 

// 

" 

S 島区 

// 

// 

// 

// 

// 


三省堂窨店神田本店 

03-3233-3312 

害泉グランデ 

03-3295-0011 

東京堂害店 

03-329 卜5181 

旭屋軎店水道撟店 

03-3294-3781 

九善お茶の水店 

03-3295-5581 

雍眾堂 

03-329 卜 1362 

いずみ神田南口店 

03-3254-8521 

明正堂秋葉原店 

03-3257-0758 

Bit INN 東京 

03-3255-4575 

T-Z0NE 

03-3257-2660 

ラオックス THE COMPUTER 館 

03-5256-31 11 

八畫州ブックセンター 

03-328 卜 1811 

日本橋九善 

03-3272-7211 

旭屋害店銀座店 

03-3573-4936 

害原新撟店 

03-3591-8738 

雄峰堂 N S 店 

03-3503-6586 

虎ノ門害房本店 

03-3502-3461 

虎ノ門害房田町店 

03-3454-2571 

芳林堂大井町店 

03-3474-4946 

明屋害店五反田店 

03-3492-3881 

紀伊國屋窨店渋谷店 

03-3463-3241 

旭屋害店渋谷店 

03-3476-3971 

三省堂窬店渋谷店 

03-3407-4545 

大盛堂窬店 

03-3463-0511 

紀伊國屋窨店笹塚店 

03-3485-0131 

紀伊國屋軎店本店 

03-3354-0131 

三省堂窬店新宿西口店 

03-3343-4871 

福家窬店センタービル店 

03-3345-1246 

福家窬店野村ビル店 

03-3342-0298 

新星堂 N S ビル店 

03-3344-2055 

西武新宿ブックセンター 

03-3208-0380 

芳林堂高田馬場店 

03-3208-0241 

未来堂 

03-3200-9185 

旭屋害店池袋店 

03-3986-0311 

芳林堂池袋店 

03-3984-1101 

リブ a 池袋店 

03-398 卜0111 

三省堂窨店池袋店 

03-3987-0511 

新栄堂本店 

03-3984-2345 

新栄堂アルパ店 

03-3988-0181 

明正蚩中通り店 

03-383 卜0191 

ブックストア•談 

03-3635-1841 

文教堂育戸店 

03-3838-5938 

文教堂西葛西店 

03-3689-3621 

アクトブックスサンカマタ店 

03-3735-1551 

竜文堂大森駅ビル店 

03-3775-3851 

明屋窬店東京本社 

03-3387-8451 

ブックセンター获3 

03-3393-5571 

害/*杉並店 

03-3313-4778 

紀伊國屋書店吉祥寺東急店 

0422-21-5543 

弘栄重吉祥寺店 

0422-22-1031 

パルコブックセンター吉祥寺 

0422-21-8122 

真光窨店 

0424-87-2222 

啓文堂 

0423-66-3151 

三也堂窬店三臘店 

0422-48-4510 

東西書房 

0422-46-0275 

文教堂小金井店 

0423-86-0161 

三成堂国分寺店 

0423-25-3211 


押田謙文堂 

048-641-3141 

ブックセンター押田 

048-647-3141 

主省堂プックボート 

048-646-2600 

須原屋蕨店 

0484-44-1211 

岩浏窨店川口店 

0482 -52-2 190 

黑田書店川越店 

0492-25-3138 

芳林堂所沢店 

0429-25-5355 

いけだ窬店所沢店 

0429-28-3271 

黒田窬店上福岡店 

0492-66-0120 

文教堂朝®店 

0484-76-0107 

新星堂志木店 

0484-74-0182 

文教堂春日部店 

048-752-7666 

锦電サービス 

0492-96-2962 

多田屋セントラルフラザ店 

0472-24-1333 

キディランド干葉店 

0472-25-201 1 

巌翠堂 

0474-72-5011 

ときわ軎房本店 

0474-24-0750 

リブロ船橋店 

0474 -25-0 III 

旭屋窨店船橋店 

0474-24-7331 

芳林堂津田沼店 

0474-78-3737 

第二巌眾堂 

0474-65-0926 

三省堂窬店西船檇店 

0474-34-31 11 

西ロアサノ 

0471-44-21 11 

新星堂柏店 

0471-64-8551 

堀江良文堂 

0473-65-5121 

辰正堂駅ビル店 

0473-64-7997 

有隣堂トーヨー店 

045-311-6265 

有®堂東ロルミネ店 

045-453-0811 

栄松堂相鉄ジョイナス店 

045-32 卜6831 

そごうプックセンター 

045-465-2111 

九蕃ブックメイツポルタ店 

045-453-6811 

有瞬堂伊勢佐木店 

045-261-1231 

有隣堂戸塚店 

045-881-2661 

文華堂戸塚店 

045-864-5151 

アーバン文華堂 

045-82 卜5151 

文教堂育葉台南口店 

045-983-5150 

有®堂アゼリア店 

044-245-1231 

有隣堂川崎 BE 店 

044-200-6831 

文学堂本店 

044-244-1251 

文教堂溝の口店 

044-811-8258 

島森害店大船店 

0467 -46-3841 

if 倉害店 

0467-46-2619 

平坂書房 WALK 店 

0468-25-5537 

有®堂藤沢店 

0466-26-141 1 

リブロ藤沢店 

0466-27-01 11 

文教堂六会店 

0466-82-9610 

川上窬店ルミネ店 

0467-87-3827 

サクラ書店駅ビル店 

0463-23-2751 

文教堂四之宮店 

0463-54-2880 

八小金書店 

0465-22-7111 

伊勢治害店 

0465-22-1366 

文教堂小田原店 

0465-36-3677 

有瞬堂厚木店 

0462-23-4111 

文教堂中央林閗店 

0462-75-4165 

文教堂相撗大野店 

0427-49-0650 

文教堂撟本店 

0427-74-5581 

文教堂星ヶ丘店 

0427-58-6121 

文教堂城山店 

0427-82-9278 


く北海道〉 


札幌市 

紀伊國屋窬店札幌店 

01 卜23卜2131 

// 

旭屋書店礼橡店 

01 卜24卜3007 

ク 

九善らがぁ一る新札幌 DUO 店 

011-890-2588 

// 

* 貴堂札俠バルコ店 

01 卜2 14-2303 

// 

ダイヤ害房本店 

01 卜 712-2541 

// 

ダイヤ窬房西店 

011-665-6223 

旭川市 

旭川*貴堂 

0166-26-3481 

// 

ブックス平和マルカツ店 

0166-23-6211 

苫小牧市 

旭屋軎店苫小牧店 

0144-36-5185 

く東北〉 



爾森市 

成田本店 

0177-23-2431 

" 

岡田書店 

0177-23-1381 

弘前市 

紀伊國屋窬店弘前店 

0172-36-4511 

// 

今泉本店 

0172-32-2231 

// 

メディアイン城東店 

0172-27-8118 

八戸市 

伊吉窨院 

0178-44-1917 

盛岡市 

さわゃ窬店 

0I96-S3-44I 1 

// 

第一害店 

0196-53-3355 

仙台市 

金港堂 

022-225-6521 

" 

金港堂ブックセンター 

022-223-0979 

// 

アイエ害店駅前店 

022-264-0718 

// 

九蕃仙台支店 

022-266-1127 

" 

高山窨店 

022-263-1511 

秋田市 

三浦窨店 

0188-33-8131 

山形市 

八文字屋 

0236-22-2150 

福島市 

岩湘書店コルニエツタヤ店 

0245-2 卜2101 

" 

博向堂 

0245-2 卜 1161 

郡山市 

柬北窨店 

0249-32-0379 

いわき市 

ヤマニ窬房本店 

0246-23-3481 

// 

鹿島プックセンター 

0246-28-2222 

会漳若松市 

宝文館 

0242-27-5198 

原町市 

文芸堂 

0244-22-1720 

〈間東〉 



水戸市 

川又書店駅前店 

0292-3 卜0102 

// 

ツルヤブックセンター 

0292-25-2711 

胳田市 

武石書店 

0292-73-1212 

東海村 

大野害店 

0292-82-2098 

鹿 A 郡 

なみき書店 

0299-96-1855 

土浦市 

共栄堂 

0之 98-2 卜6134 

つくは市 

九蕃筑波大学会館店 

0298-5 卜6000 

// 

友朋堂吾妻本店 

0298-52-3665 

宇都宮市 

落合書店オリオン店 

0286-34-3777 

// 

落合書店東武ブックセンター 

0286-34-8271 

// 

新星堂宇都宮店 

0286-33-2337 

小山市 

進 K 堂駅ビル店 

0285-25-1522 

前撟市 

煥乎堂 

0272-23-1211 

// 

リブ Q 前撟店 

0272-34-101 1 

ft 

戸田窬店前橋店 

0272-61-5063 

高崎市 

字陽書房 

0273-23-4055 

// 

サカヰ窬店 

0273-62-1500 

// 

新星堂高崎店 

0273-27-3961 

ft 

戸田書店高崎店 

0273-63-51 10 

太田市 

ナカムラヤ 

0276-22-2001 

く首都圏〉 



满和市 

m 原屋本店 

048-822-5321 

// 

須原屋コルソ店 

048-824-5321 


ソフトバンクの 

書籍特約書店 


下記の害店の一覧は、ソフトバンク書籍特約 
店として右にある商品の低新刊もとりそろえ 
ております。ご希望の商品がある場合は、下記 
のお近くの書店にてお買い求め下さい。 

(注)現品が売れて補充中の場合もございますので、 
ご;主 s 下さい。 


ISmk 


ソフトバンク出版事業部 

〒108東京都港区高綸 2-19-13 r 03 (5488) 1360 


全国特約書店一覧 





市 市市市市 市市市市郡市 市市 
宮 //// P 越沢//調 S 木0 S 5 企葉//啡懦// 
大蕨川川所上朝志 ff 比千 習船 


市市市 

E 


市市市 
布中!!パ 
|»府三 


区区区区区 区区 
東田飾 FJI 1 田//野並 
台墨* > x 大中杉 



































































































特約書店基本図書一覧 


定価は すべて 税込です。 


国立市 

東西軎店 

0425-75-5061 

小平市 

文教堂小平店 

0423-43-9229 

東村山市 

文教堂東村山店 

0423-96-11 15 

立川市 

オリオン書房ウイル店 

0425-27-2311 

八 王子市 

くまざわ害店本店 

0426-25-1201 

町田市 

有隣堂町田店 

0427-23-3018 

// 

久美堂本店 

0427-25-1330 

// 

久美堂小田急店 

0427-27-1111 

// 

文教堂®川店 

0427-35-4117 

// 

文教堂小川店 

0427-96-1781 

多®市 

くまざわ害店桜ヶ丘店 

0423-37-2531 

福生市 

文教堂福生店 

0425-53-7708 

く 甲信越 • 

北陸〉 


甲府市 

文教堂甲府店 

0552-22-4600 

長野市 

平安堂長野店 

0262-26-4545 

" 

長谷川軎店 

0262-26-2122 

松本市 

フックスロクサン 

0263-35-5555 

// 

改造社松本駅ビル店 

0263-36-3777 

// 

アクロスブックセンター 

0263-32-5733 

上田市 

平安堂上田店 

0268-22-4545 

飯田市 

平安堂飯田店 

0265-24-4545 

岡谷市 

笠原窬店 

0266-23-5070 

斑訪郡 

平安堂下調訪店 

0266-28-1111 

新潟市 

紀伊國屋害店新潟店 

025-24 卜5281 

// 

S 松堂 

025-229-2221 

" 

北光社 

025-228-2321 

長岡市 

覚張書店 

0258-32-1139 

// 

ブックセンター 長岡 

0258-36-1360 

// 

長岡技大長峰文化 

0258-46-6437 

上越市 

ハソトヒアコスモス 

0255-25-5867 

山北町 

BOOK メディア 

0254-77-3850 

畜山市 

湘川窨店 

0764-24-4566 

// 

清明金 

0764-24-4166 

// 

BOOKS なかだ 豊田店 

0764-32-1353 

// 

文苑堂本郷店 

0764-22-0552 

" 

文苑堂赤江店 

0764-33-0321 

高岡市 

文苑堂 

0766-21-0333 

// 

文苑堂横田店 

0766-21-0431 

金 沢 市 

うつのみや片町店 

0762-21-6136 

// 

窬林香林坊本店 

0762-20-501 1 

野々市町 

王様の本本店 

0762-46-5325 

福并市 

牌木軎店 

0776-24-0428 

// 

品川窨店新田塚店 

0776-24-11 12 

〈東海〉 



酹岡市 

S 争岡谷島屋呉服町本店 

0542-54-1301 

" 

江 崎窨店 

0542-54-4481 

// 

吉見窨店 

0542-52-0157 

// 

戸田書店 S B , S 店 

0542-81-5733 

// 

戸田窬店曲金店 

0542-8 卜 5899 

沼津市 

吉野屋 

0559-23-5676 

// 

マルサン窨店宝塚店 

0559-63-0350 

畜士市 

戸田害店富士店 

0545-51-5121 

清水市 

戸田害店本店 

0543-65-2345 

浜松市 

浜松谷岛屋連尺本店 

0534-53-9121 

名古屋市 

S 省堂 耆店名古屋店 

052-562-0077 

// 

星野軎店近鉄ビル店 

052-58 卜 4796 

// 

丸善名古屋支店 

052-26 卜 2251 

" 

丸蕃 ブックメイツセントラルハーク 

052-971-1231 

// 

日進堂上前漳店 

052-263-0550 


名古屋市 

三洋堂パソコン シヨ ッブ S 

052-251-8334 

// 

三洋堂いりなか本店 

052-832-8202 

// 

ちくさ正文館本店 

052-741-II 37 

// 

白樺書房西店 

052-774-7223 

豊撟市 

W 文館 

0532-54-2345 

岡崎市 

ブックス鎌倉 

0564-54-1822 

豊田市 

三洋堂梅坪店 

0565-35-2334 

豊川市 

三洋堂豊川店 

05338 -3-0334 

刈谷市 

三洋堂刈谷店 

0566-24-1134 

春日并市 

三洋堂勝川店 

0568-32-7806 

一宮市 

三洋堂一宮店 

0586-77-5734 

岐阜市 

自由書房 

0582-65-4301 

大垣市 

大洞堂ブックス 258 

0584-81-2553 

// 

大洞堂岐大パイハス店 

0584-74-7766 

可児市 

三洋堂可児店 

0574-63-2334 

多治見市 

=洋堂多治見店 

0572-24-0340 

津 市 

別所書店 II ビル店 

0592-24-1014 

四日市市 

文化センター白揚 

0593-51-0711 

鈴鹿市 

シエ トワ白掲スズカ 

0593-82-5221 

く近畿〉 



京都市 

駿々堂京宝店 

075-223-1003 

// 

アバンテイ • ブックセンター 

075-682-5031 

" 

オーム社書店河原町店 

075-22 卜 0280 

// 

ジュンク堂京都店 

075-252-0101 

// 

オーム社軎店竹田店 

075-644-261 1 

奈良市 

敁々堂大丸店 

0742-26-624! 

大阪市 

旭屋窨店本店 

06-313-1191 

// 

紀伊國屋窨店梅田店 

06-372-5821 

// 

オーム社窨店大阪店 

06-345-0641 

// 

敁々堂京撟店 

06-353-3209 

" 

5 曼々堂心斎撟店 

06-25 卜 0881 

// 

旭屋害店ナンパ店 

06-644-2551 

// 

ナンパブックセンター 

06-644-5501 

" 

ヒバリヤ軎店 ナン バ店 

06-644-5407 

// 

旭屋窬店 アベ ノ店 

06-631-6051 

// 

ューゴー窨店 

06-623-2341 

// 

河村書店 

06-951-2968 

枚方市 

水嶋書房京阪デパート店 

0720-51-3432 

高槻市 

コーべブックス西武高槻店 

0726-83-1766 

東大阪市 

ヒバリヤ害店本社 

06-722-1121 

神戸市 

ジュンク堂センター 街店 

078-392-1001 

// 

ジュンク堂サンバル 店 

078-252-0777 

// 

海文堂窨店 

078-33 卜 6501 

// 

日東館軎林 

078-39 卜 8701 

姫路市 

新興書房 

0792-85-3344 

" 

誠心堂軎店 

0792-81-2055 

和歌山市 

宮井平安堂 

0734-31-1331 

// 

帯伊書店 

0734-22-0441 

く中国〉 



岡山市 

紀伊國屋窨店岡山店 

0862-32-3411 

// 

丸善岡山支店 

0862-3 卜 2261 

津山市 

津山ブックセンター 

08682 -6-4047 

広島市 

紀伊國屋害店広岛店 

082-225-3232 

// 

九蕃広島支店 

082-247-2251 

// 

金正堂 

082-248-3715 

// 

積善館 

082-248-3151 

尾遒市 

啓文社尾道店 

0848 -37-5151 

福山市 

啓文社福山店 

0849-22-3111 


福山市 

ブック シティ 啓文社 

0849-25-0050 

〃 

啓文社コア 

0849-41-0909 

山口市 

五十部誠文堂 

0839-24-6630 

// 

文栄堂 

0839-22-5611 

下閱市 

中野軎店 

0832-22-6181 

宇部市 

京屋軎店 

0836-31-2323 

// 

末広害店 

0836-3 卜 0086 

防府市 

波文堂国衙店 

0835-25-1988 

光 市 

三文字屋 

0833-7 卜 0251 

鳥取市 

畜士畜店 

0857-23-7271 

松江市 

圍山窨店 

0852-2 卜 4167 

<四国〉 



徳臬市 

小山助学館本店 

0886-54-2135 

" 

小山助学館東口店 

0886-25-1380 

" 

森住九善 

0886-23-3228 

高松市 

宮脇窨店本店 

0878-51-3733 

九衝市 

宮脇窨店丸亀店 

0877-22-5533 

松山市 

紀伊國屋書店松山店 

0899-32-0005 

" 

明屋窨店本店 

0899-41-4141 

" 

明屋書店大街道店 

0899-41-4242 

// 

九三窨店 

0899-3 卜 8501 

新居浜市 

明屋星原店 

0897-44-4000 

宇和*市 

明屋宇和島店 

0895-23-1118 

高知市 

金高堂 

0888-22-0161 

<九州 • 沖繩〉 


福岡市 

紀伊國屋書店福岡店 

092-72 卜 7755 

// 

り一ぶる天神 

092-713-1001 

" 

« 文館新天町店 

092-781-2991 

// 

福岡金文堂本店 

092-74 卜 2106 

// 

福岡金文堂朝日ビル店 

092-43 卜 1094 

// 

福岡金文堂デイトス店 

092-451-6175 

// 

福岡金文堂アニマート原 

092-844-0088 

北九州市 

ナガリ書店 

093-52 卜 1044 

" 

金栄堂 

093-531-3685 

// 

旭屋軎店北九州店 

093-63 卜 6421 

// 

井筒屋プックセンター 

093-641-0131 

// 

カルパーク平野 

093-661-7988 

// 

白石軎店本城店 

093-601-2200 

久留米市 

エマックスたがみ 

0942-33-1841 

飯塚市 

BOOK リード 

0948-25-7266 

大分市 

パルコブックセンター大分店 

0975-35-0643 

// 

本町晃星堂 

0975-33-0231 

別府市 

明林堂 

0977-23-2183 

宮崎市 

中央、田中害店 

0985-24-351 1 

// 

搿屋宮崎店 

0985-27-4111 

佐贺市 

金華堂北バイパス店 

0952-32-1965 

" 

搰文館佐背店 

0952-24-4314 

// 

m 文館デイトス店 

0952-23-7155 

長崎市 

メトロ軎店 

0958-2 卜 5453 

// 

好文堂 

0958-23-7171 

佐世保市 

金明堂軎店 

0956-22-4214 

熊本市 

屺伊國屋軎店熊本店 

096-322-5531 

// 

畏崎害店 

096-353-0555 

人吉市 

明屋人吉店 

0966-22-5486 

鹿児 A 市 

春苑堂ブックプラザ 

0992-25-3200 

// 

ブックスみすみ 

0992-57-101 1 

那顥市 

球隈堂窨房ビル店 

0988-63-3752 

// 

文教図書 

0988-62-1201 


180昍アセンブリ言語 • 

8086マクロプログラミング • 
入門 Tirto PASCALv e 「.5 プログラミング • 
IGDC テクニカルブック • 

| C 言語の基礎知識 ^ 

C 言語の活用理解 ^ 

。言語の応用50例 ^ 

|上級言語の応用50例 - 

I Play the C 上巻 _ 

Play the C 下巻 • 

| C プリプロセッサ•パワー « 

Turbo C 入門 1 

C ++ プログラミング • 

QuickC プログラミング ' 
I 詳説 。 Big • 

MS - CVer .5.1 プログラミング | 
I Turbo CVer .2.0 プログラミング 、 


| ダイナブック•スーパーガイド- 
最新八ードディスク入門 - 

I 最新 EMS . RAM ディスク入門 、 
プレイ MS-DOS 
MS - DOS いたれりつくせり本 
」新 MS - DOS 入門 ビギナー編 
^新 MS - DOS 入門 シニア編 
新 MS - DQS 入門応用編 
| OS /2 API ブック I 
OS /2 API ブック II 
UNIX オペレーティング•ガイド 
一太郎 Ve 「.3 ガイド 
入門一太郎 Ver .4.2 
PIEXE ガィド 
RPG 幻想事典 
RPG 幻想事典日本編 
魔法王国シムルグント 


|LOTUSl-2-3 ガイドビギナ-編 • 2, 480円 
LOTUS 1-2-3 ガイド II • 2, 580円 
桐 Ver 2 ガイド • 2, 580円 

入門桐 Ve 「.2 —括処理 籲 3,500円 
NinJa 3 ガイド 籲 2,300円 

MS-Chart Ver .3.1 ガイド 籲 2,990円 
|まいと一くガイド • 2, 370円 

d 巳 ASEIII PLUS ガイド 參 3,800円 
|The CARD 3ガィド 籲 2,900円 
|アセンブラ CASL 入門 籲 2,060円 
八 ー ドウ エア徹底マスター 鲁 2,580円 
F 〇 RTRAN 徹底マスター 籲2,890円 
受験用語八ンドブック 籲 1,860円 

情報処理入門 I 基礎知識 •し 24 〇円 
情報処理入門 II 関連知識 U 4 。 円 
CASL で学ぶアセンブラ入門 • 2, 270円 
|そっくり模擬試験 ♦ 2, 200円 


情 

報 

処 

理 

試 

験 


アプ U ケ1シ 


アセンフラ 












網の翁 


M» そ dMIYES 5F 

パソコンシ a- ノブ八卜•ソン 

na 霉巧«チ I* •ン_«家® 

%m デン:!ードー aw 寒店 
秋田 電巧«チ I— ン找田明舫辜店 
iu 色 ヂンコードー仙 tt 本 s 

デン:!ードー Dac 德 Jft 類口 « 
庄子デンキ: r ノビユータ中央 a 
B 山 ラすい百*店 
福鷉 ff 子デンキ粉又明衂店 
いわきIめきマイコンショップ 
" 庄子デンキ山形七日 w 窣店 

PIC 

PIC こば 0® 

丸鬌デバート1 F 
丸_マイコンシ 3 ップジヤスコ 

T«B KSP^ffB 

mm パソコンランド8拓穩店 
舄_ パソコンランド?I邐黷£ 

X田 パソコンランド?IX田店 

«生 


山形 

断!! 


ソ3ンランド21 _生店 
又薩 SIR 的 R ?F 


水戶 /MSI 
つくばミド•膚 M 

ダイエー大 S 店 6F 

HMT 川«鑷霣電 Mt 


太 S 

.iltf 


IF 


用沢 e 

イトーヨーカドー松戸 e 
〒钃 ラオックス千鼠 ft(PEFUE 3F) 

/V千代 ft ラオ•カス千代 ftg 
祆■轔 AIMECCS 4F 


サトーム G ン(メディア tz ンタ _) 
サトーム t! ン(ラジオ r • 一 

サトーム G ン寡® 

A 秋■颺 


サ》^—ム1 

CVA 秋 

コム本® 


r ジオ鱈) ' 
8 5F 


ザ • 3ンピュータ鳕 
ViJS ラオックス撕 Wft 
池袋 ビックカメラ池»_□寡® 4 F 

ビックカメラ;也口店 4F 
济谷 上撕電谷店 IF 

ビックカメラ汾谷 J® A* 6F 
也田谷セマギワ王川店(颺廳賺 5F) 
1UIW ラオックス fi” 齊店 2F 


小金羚サン葛:霉小肅《6 
Hiu 丸麵 《u«iz 川 e(wm 

ハ王子ムラウチ霉氰 ?F 


躍本 

太10 


6F) 


jbp ハ王子 a (そご3 ;F) 

麵•八ンズ的田 ft BIF 
jspti 田 a 
ソフトクリエイト籲袅6 

«*VIVRE ai JF 

ダイエー戸霣 a 3F 
ic コスモランド awr みの 
icu モランドか to 
tr キクチデンキ麵 

WAVE EYE 

IW- 

うオック; UP 本达オーテ <オ鼸 
WAVE EYE 大 


中込亀紙羈 ft 
タイエー HWR 


mm 

■田 


BF 


八衊 

扣V山 


H 戴 
离松 

風 M 

松山 
¢71州 

豔泰 

mim 

太分 

HM 


ラつの^や片》1« 

H の^カラー明识达 
PASIX わ< メディア館 
たるま IF AVC 

メルバ; a 潷 
メルバ_两 
メルバ霣; tft 
メルバ漭忪募 ft 
ホ_エ••寒電獅 tft 
マエタ M8V 
采電 U テクノ名 S 暦 
パソコンシ3ップ3ム〇—卜 
ちくさI文«鏖色ターミナル fe 
力卜一 _H 霉螬 «91R 4F 
A 鼸類19 «—アメ 

采電 U テクノ大灞 
トップカメラ4に 
jsp 大灞 a 
Iイデンメディア大礴 
宏霉衫テクノ讎蠄 
ジャス:] eauft 3F 

ジャス:3« 田 ft パ•ノ Tyi/aj7jPi 
パソコンシ 3 ップ M ロード IMM 
スイテック太10ヤナゲン &A 繾 
KawaifftfOA 詹 ft 
Kaw3i_ 鰺/)デンワールト•四 nm 

Kawai Baxft 6F 
AitSMft 間 A 夂 

JSP テクノランド 
JSP メディアランド 
ニノミヤIレランド 
ニノックスコア日搴 ma 
ニノミヤパソ: j ンランド麵 iiA 
ニノミヤパソコンうント断恥謂4ビル供 
JSPflbl 三暴幻色 

A« 百 MA_fi ハ躧认 

JSPWimjft 

響霉《三 S 辜 ftC •ソフト 
ダイエー三 S 電《鼴パレ:^ス 
tIMMZR -雛 K 
電鼸 JfiPIC 路 ft 

»路コンビ: j ー タソフト: r ノバックス 

WUJVIVRE PI 

雇礅ファソランド 

松本!!讎パーゥ 
ダイイチパソ:!ン OTY 
Sound Check MOVE 
»薦そこう 7F 
デンキのタクチ 
タイイチ松山ノ r ノコン QTY 
ベストマイコン小雇バソ :) ン鼷 
ベスト7イ:3ン«® 

躑躓エレデ _f 
ベスト電鼸 fll_ 錯 
蝎馨辜 HA 

ベスト7イコン諷蓴パソコン鼸 
ベスト霉■鼸 WI パソコン繾 
ペスト電■大分パソコン鱈 

S_ 麟驪〇纗 ;F 

ベスト電■觸讓氏 6F 


D390B-1 

1)3496^ 


冬ちや h 


作:いゎぃ U ?^ L \ 
え:岡対祭 


(0 ⑴?14•脚 
(OIDfl^lSSO 
(0177)23-8366 
(01 明)54-?77? 
(0186)34-3151 
(0??)?»-5?90 
(哝)》卜4744 
(0??)2?4-5591 
(0?49)3?-0001 
(0?45)21-2011 
(〇?46)?3-〇513 
(0?36)4?-1?8? 
(0?5)?43-5135 
(0?5)?33-5791 
(0058)33-4970 
(0?&8)87*6033 
(O?06)6?-OOO? 
(0?72)?1-?7?1 
(0?73)26-5??1 
(0P7E)45-07?I 
(0?77)45-?7?1 
(贼 )3 卜 0IK 
(0898)56-3715 
(01«)15-4147 
(04S?)i4-SCI 
(048;) ^0711 
(0439)39-5117 
(0473)68-5131 
(047?)?卜5318 
(0474)85*«61 
(03)^56*491 ! 

K55-4040 

*5256-3267 


(03): 

(03)1 _ 

(03)3?51-1464 
(03)3aS3*5fl^ 
(03)3258-3711 
(03)385M5?3 
(03)5356>3111 
(03)3350- 1841 
(03)3966*0020 


(03)3706-1630 
(042P)?I-347I 
(04?3)B5-38I0 
(0425)?/*6811 
(04%)4?-6?ll 
(0426)?6-4141 
(O4c;)?0*a6O3 
(0487)23-1313 
卿314.4777 
«M5)3I4-?I?I 
(06)881-1061 
(046)901-1901 
(045)334-9636 
(则?44.54?1 
(0466)^1771 
(M3)e?-4M7 
(046?)??-?;?? 
(046?)63*9698 
(06S?)?4-5OI 
(0»?)?M3II 
(0?63)3?-6350 
(076?)?!-6136 
<0784)4 卜9075 

(07WP3 •胶1 
(07 相)? MJIII 
咖限 .4858 
(054?)54-533B 
(0545)51>80?? 
(0534)64-841? 
(0534)53-1441 
((£34) 73- 1691 
畑 W5BHWI 
(〇5?)?6358?0 
(05?);»-3601 
(05?)?64-IS34 
(股盼 I6P6 
啦脱-0181 
(0^)971 -0111 
(脱)? 6P-IUI 
(05?)?4?-6591 
<(&3?)5?-1?31 
((£64)?3-4960 
腿 >35. 1761 
(QS6?)G6*O?80 
(0584)81-3491 
(Q59?)?6-0M1 
(0583)54-3366 
<(&98)?6-0111 
(0WPS-0MI 
(Q6) 634-IPII 
(08) 634-1511 
(06) 63?<?036 
(OS) 647-PO30 
(05) 643.3?け 
(06) 34I-P03I 
(06) 374-3311 
(0;?6)85-1?1? 
(07?9)97*0111 
(075)341-3671 
(〇734)?0-1441 
(0^)391*81/1 
(0/8)391- 7911 
(C?fl)?l!-?lll 
(C 庇) 

(0^?)94-6844 

' 州 . ぐ H ‘侧 I 

(〇064)?5-4^1 
(0B?)?43-445I 
(0BP/P48-4343 
《明; 8)6 卜6け I 
麵}? 5.4066 
(0866)?3-〇181 
(0899)31-6/11 
{093)561-6281 
<败>?8卜7131 
<败畑卜4411 
(O950)P0*I333 
(038)37?-S4ll 
(096)33?-4lfl0 
败)办 aoei 
(B^)3?-9396 
(MB5)?;*4IM 
(3066)6?* 7S6B 


フラサ—エ讓株式 s 社 

〒467名古*市瑙穗区苗代町2番1号 

新事業推進室 

TAKERU 事務局 (052)824-2493 



購読方法:定期購読もしくはソフトベンダー武尊(タケル)でお買い求めいただけます。 
★定期購読の場合=定期購読料6ヶ月分6,000円(送料サービス、消費税込)を、 
現金書留または郵便振替で下記の宛先へお送リ下さい。 

現金書留の場合:〒171東京都豊島区要町丨一19—3いさみビル 4F 満開製作所 
郵便振替の場合:東京5—362847満開製作所 
參御注文の際は、郵便番号 • 住所 • 氏名 • 電話番号を忘れずに記入して下さい。 
•新たに購読を開始される方は、「新規」とご明記下さい。 

參製品の性格上返品には応じられませんが、お申し出があれば定期購売を解約し残 
金をお返しします。 

★武尊でお求めの場合=丨部につき1,200円(消費税込)です。 

籲定期購読版と内容が一部異なる場合があります。ご了承下さい。 

_お問い合わせ先 TEL (03) 3554— 9282 (月〜金午前1丨時〜午後6時) 

(なお、定期購売版のバックナンバーについては定期購読者の方のみご注文を承ります) 



パソコンソフト自販襯 






^ 


船本昇竜 
(京都府) 


プログラマ—を目指す者から見 
た電脳倶楽部の魅力といえば',は 
やい:フまい•やすい,に尽きま 
す。每月掲故されているプロダラ 
ムは全部すぐに実行出米るよぅに 
なっており尚且つ、掲躲されてい 
る殆どのプログラムのソースが公 
開されているので自分で新しいプ 
ログラムを作る時いろいろと参考 
になります。それでいて月々千円 
なんてあまりにもお H い得です。 
毎月プ〇グラムは非常に高度な物 
から初心者にでも理解出米そぅな 
物まで数多く褐敉されているので 
プログラマ—を目指す人には必見 
の"雑誌"であるといえます。 


























































































































































































































赤えんぴつならゴールが見えるガ 



鱗赤又んひつ (JRA 版) 

最近甘□の予想ばかりとお嘆きの貴兄に、辛□の予想をデータから導<「赤えんびつ」をそんな貴方にお送りします。 
今迄の競馬のコンピュータ用予想プログラムは、オッズを入力して予想するものばかりでした。 

この方法はデータ数が少な<入力し易いのですが、オッズは馬券を買つだ人たちの人気投票的なものですし、貴方の個人 
的な御意見等も反映出来ず、堅い馬券は時々当たるものの、中穴以上になると7点ぐらい予想をしてもはすれる事が多々 
あり、回収率も1〇〇%を割るものばかりでしだ。 

今回発売しだ「赤えんびつ」は当だる馬券を予想するのでは無<、予想紙に載つている馬の過去のデータを入力して、ゴ 
ールする時のタイムを予想し上位3頭の馬から3点の組み合わせをはじき出します。 

当社で行つだ過去9〇回のレースを模擬的に各レース3点で予想しだ結果では35%の的中率を出し、回収率も1 30% 
を上回つています。 

過去のデータだけを入力するのでは無<、最新の馬の調子や馬場状態等の主観的なデータも1〇〜1〇〇%の数字に置き 
換えて予想に反映させだり、それらのデータをディスクにセーブする事が出来ますから、レースの前日にデータを入力し 
ておき、レース当日の天候等、直前の情報で各馬のデータを修正して予想を立て直す事も出来ます。 

又、コンピュータの苦手な方でも簡単にデータの入力が出来る様にカーソルコント□ールキーと実行キーの5つのキーを 
使ろだけで総ての操作が出来ます。 

このプログラムは J RA 主催の全国1〇ヶ所(札幌、函館、福島、新潟、中山、東京、中京、京都 J 及神、小倉)の各競馬場以外の 
公営競馬場では使えません。 

赤えんぴつ US 日000用 2 HD 20,00 Or 


便利な超高速通信機能付で、 DB . X よりも使い易く、のディスクもアクセス出来る。 

SUPER DEVICE MON I TOR “ T ” XI 6 日000用 2 HD 15,000円 

ぶ YSSOOO と超高速通信が出来て MS — DOS のディスクや内部増設 RAM にもアクセス出来る。 

SUPER DEVICE MON I TOR “ T ” 2 HD /2 D 13,000円 


* MS — DOS はマイクロソフト社の商摞です。 
* 商品の価格には消費税は含まれていません。 


► お求めは全国の有名マイコンショップでどうぞ0 

通信販売をご希望の方は当社へ直接、商品名•機種名•メディア名•住所- 
氏名. 電話番号を明記の上、現金書留にてお申し込みください。 (送料無料) 


株式会社 BLUE SKY 
亍411静岡県三島市加茂 16-4^0559-72-6710 









き霞 


高価下取り、 

買取りいたします、 
お問合せ 
下さい0 




S03(3253)7BB1 


〒101東京都千代田区外神田 3-2-3 Q03-3253-761K 代) 


今すぐもよりの電話から 

仙台 022-264-3704 

名古屋 052-452-3271 

広島 082-295-6873 

札幌 011-611-5104 

新 潟 0252-75-4175 

大阪 06-311-3931 

福岡 092-481-2494 



Welcome/ 
ご来店もどうそ: 


X 68000 の情報のすべて/(当店ば X 68000 の認定代理店です。お気軽〖こご相談下 3 TJ ) 


XX S 8000 待望の新しい仲間登場// 


PERSONAL WORKSTATION _ 

EXPERTS EXPERTffSE 



XK6B000 

PERSONAL WORKSTATION 

■R0H.PR01I SBJ 


PROD-PROn HD 

’拡張 I / O ボートを 4 スロットを搭載し、汎用 
^性と低価格が魅力。 

ろん、 SX - W 旧 DOW 搭載。 


■ 標 r 準 格 ¥338,000 I 

\ / a An nnn 


ぶ亨真のモニタは別売です,〕 


CZ-—613C 標進風格 ¥448,000 


AVC 特価 



' 

二: 

、初脚卿”. 

CZ-653C 陽準価格 ¥ 285,000 
CZ-663C 標準価格 ¥395,000 


〔写具のモニタは別売です。〕 


AVC 特価 


CZ -8 PC 4 


お勧めディスプレイコーナー組合せは 自由、 価格はお気軽にご相談下さい。 


但 


消 

費 

税 

さ 

% 

別 

途 

請 

求 

さ 

せ 

て 

い 


皿 

H 


48ドット熱転写プリンタ 
一。精密な文字、ハード 
コピーも可能。 


CZ-604D 

標準価格 ¥94.800 

AVC 特価 


• 0.31 mm ドットピッチ 
春2モードオートスキヤン 
•ステレオスピーカ搭載 
♦チルト台同梱 


CZ -8 PC 4 ••…¥ 99,800 


AVC 特価 ¥64,800 


CU-21HD 

播準価格¥148,000 

AVC 特価 


春 0.52 mm ドットピッチ 
參21型ディスプレイ 
參3モ _ ドオートスキヤン 
•ステレオスピーカ搭載 


CZ-613D 

標準価格¥135,000 

AVC 特価 


參ドツトビツチ 0.31 mm 
• TV チューナー搭載 
• ステレオ スピーカー 搭載 
參チルト台同梱 


CZ-605D 

標準価格¥115,000 

AVC 特価 


修ドットピッチ 0.39 mm 
籲 TV チューナー搭載 
•ステレオ スピーカー 搭載 
* チルト台同梱 


籲0.31 mm ドットビッチ 


CZ-603D 

棵準価格¥84,800春 TV チューナ無し 

AVC 特価 *3 モ -K ォ-トスキャン 

籲チルト台同梱 


CZ-602D 

標準価格 ¥99.800 

AVC 特価•チルト台同梱 


•ドットビッチ 0.39 mm 
• TV チューナー搭載 


ぎ 

ま 


分 

割 

回 

数 

は 

3 

回 


48 

回 

ま 

で 

白 

由 

に 

選 

ベ 

ま 

す。 


XIBBOOO 

PERSONAL WORKSTATION 

EXPERT SHI 


一 



CZ-604C-TN 

.¥348,000 

CZ-606D-TN 

.¥ 79,800 

世界標準 SCSI インタ 
ーフェース標準装備。 


新年特別 セール 


1月中にお買上げのお客 
;様にフロッピーテ V スク 
20枚と「 V ポール」又は 
「ニュージーランドストー 
のどちらかをプレ 
卜. 


外/ 


AVC 特価 


価格はお電話で 


XXBBOOO 

PERSONAL WORKSTATION 

SUPER ms 



CZ-612C-BK 

. ¥466,000 

CZ-603D-BK 

.¥84,800 

ジョイカード ••¥ 1,400 


合計 ¥552,200 


新年特別セール 


1月中にお買上げのお客 
様にフロッピーディスク 
20枚と「 V ポール」又は 
「ニュージーランドストー 
リー」のどちらかをプレ 
卜/ 


起特価 


¥352,000 


•頭金なし(手軽な電話クレジット)•製品先取り(お支払いは約卜2ヶ月後から)•低金利クレジット( I 回の支払いは2.700円以上で3〜48回。ポー 
ナス併用も可)•カレッジクレジット(保証人なし。但し満20歳以上の学生の方)籲18歲未満の方(ご両親が代理購入者としてお申し込み下さい) 
•納期(通常の場合、当社に申込窨が到着後 I 週間以内。特に人気のある商品で品薄の場合、少々納期が遅れることがありますので御了承下さい) 
春完全保証(すべてメ_カー保証窨付。アフターケア万全)•全国代引(お届けした者に、代金をお支払いいただく方法です。但し手数料1,000円) 


AM 10 時から PM 7 時 

まで受彳订日曜•祝日ち営業 


a 価格は電話で値切って下さい0 

























































ディスプレイ 

CZ-604D 

CZ-605D 

CZ-613D 

CU-21HD 


プリンタ 


周辺機器 

ソフト 

CZ-8PC4 

特価 

CZ-8NJ1 

¥1,400 

CZ-213MS 

¥15,500 

CZ-8PG1 

特価 

CZ-8NJ2 

¥18,540 

CZ-259SS 

¥ 5,200 

CZ-8PG2 

特価 

PIO-6BE1A ¥20,000 

CZ-219SS 

¥23,100 

JX220 

特価 

PIO-6BE2 

¥39,000 

CZ-245LS 

¥35,500 



セツト超特価 

XI68000 

PERSONAL WORKSTATION 

pros * PRoniua 

CZ-B53C CZ-B53C 
CZ-B04D CZ-BQ5D 

セツト ¥ 特価 セツト¥特価 

¥24,400 X 12 回 ¥25,700 X 12 回 

¥13,300 x 2/1 回 ¥13,700 X 24 回 


1 


セツト超特価 

XS68000 

PERSONAL WORKSTATION 

teihdi 


PERSONAL WORKSTATION 

[ ± EXPERTS EXPERTEB 

^ CZ-604C CZ-BB3C 
n -7 -RnRn n^-Ri 


CZ-603C 

CZ-B04D 

セツト ¥ 特価 
¥27,500 xl 2 回 
¥14,6 QDX 24 回 


CZ-B03C 

CZ-BQ5D 

セツト¥特価 
¥28,800 XI 2回 
¥15,300 X 24 回 


て 

税 

込 

み 

で 

す 


CZ-BOBD CZ-B13D 

セット¥特価 セツト¥特価 


¥27,000 XI 2回 
¥ 14,400 X 24回 

CZ-623C 

CZ-BOBD 

セツト¥特価 
¥35,200 X 12 回 
¥18,800 X 24 回 


¥34,000 XI 2回 
¥18,100 X 24® 

CZ-B23C 

CZ-613D 

セツト¥特価 
¥40,600 X 120 
¥21,600 X 24 回 


全品メーカー保証即決クレジット OK 


24時間テレホンサービス 


0482 - 54-3444 


お申し込み 

TEL.0482-54-3400 

FAX.0482-54-3443 

埼玉県川口市西川口 4-6-4 


お支払い 

下記取引銀行口座 
までお振込み下さい。 
三菱銀行西川口支店 
㈱ デンキヤ ㊃ 〇258081 


la 


デンキヤ 


営業時間 AM 11:00 〜 PM 7:00 水•木曜定休 


_ _ _漏 











9 HXI 68000 越生•メ 



XX68000 SUPER に BASIC HOUSE オリジナル SCSI HD を組み込み、 
新たなる SUPER HD の誕生です。 



X 68000/40 (40 MHD 内蔵) . ¥348,000 

X 68000/100(100 MHD 内蔵) . ¥398,000 

X 68000/200(200 MHD 内蔵) . ¥498,000 


※ BASIC HOUSE オリジナルなので通信販売のみです0 




First Class Technology オリジナル新製品 


SB 0000 用 SCSI 仕様 

200M 外付用ハードデ a ク 

「 FHD -200」 定価 ¥298,000 


御問合せは、 PROSTAFF 登坂ま 1 


全国どこでも発送可長期クレジット OK 送料全国均一¥1,000宅配便にて即日配送 


本社営業部マイコンショップ通販部宇都宮市竹林町5031 TEL 0286 22 9811 FAX 0286 25 397 

| /只大田原営業所マイコンショップ 大田原市美原1 13 4 TELO287 23 5352 FAX 0286 23 536 

マイコン ショップ い臓 お申し込み • お問い合せは ^ 0286 - 22 - 981 im 








2 枚のボードが 1 枚になった 


鹏©口遞獅圆 



写真は KGB - X 68 PRK -14 です 


広大なメモリ空間を実現する最大 4 M バイトの 

高速増設メモ U 


高速演算を約束してくれる 

数値演算プロセッサ 


•メモリアクセスノー ウエイトによる高速アクセス 

• CZ -6 BE 2、 CZ 6 BE 4、 CZ -6 BP 1 との混在が可能 
參複数枚の KGBX 68 PRK の実装が可能 

•ジャンパの変更により任意のアドレス空間にメモリの配置が可能 
•ジャンパの変更により数値演算プロセッサの1枚目、2枚目、未使 
用の選択が可能 

_ 1 M 、2 M 、3 M メモリモデルは購入後もメモリ増設が可能 

• PRK -10、 11、12、13、14にはデバイスドライバ ( FL 0 AT 3. X ) が付 

属 


, CZ -600 C 、601 C 、611 C 、652 C 、653 C 、662 C 、663 C で御使用の際にはあらかじめ専用の 1 M メモリ ( CZ -6 BE 1、 A 、 巳等)でメインメモリを 2 M バイト 
以上に UT おく必要があります。 


製品価格一覧 

KGB-X68PRK-00 ¥34,000 

(メモリ無し/数値演算プロセッサ無し) 

KGB-X68PRK-01 ¥58,000 

(1 M メモリ/数値演算プロセッサ無し) 

KGB-X68PRK-02 ¥74,000 

(2 M メモリ/数値演算プロセッサ無し) 

KGB-X68PRK-03 ¥98,000 

(3 M メモリ/数値演算プロセッサ無し〉 

KGB-X68PRK-04 ¥122,000 

(4 M メモリ/数値演算プロセッサ無し) 

KGB-X68PRK-10' ¥76,000 

(メモり無し/数寅算プロセッサ1寸き) 

KGB-X68PRK-11 ¥96,000 

(1 M メモリ/数値演算プロセッサ付き) 

KGB-X68PRK-12 ¥112,000 

(2 M メモリ/数値演算プロセッサ付き) 

KGB-X68PRK-13 ¥136,000 

(3 M メモリ/数値演算プロセッサ付き) 

KGB-X68PRK-14 ¥160,000 

(4 M メモリ/数値演箄プロセッサ付き) 


購入後の増設費用 


メモリ 


1 M バイト 

¥24,000 

2 M バイト 

¥51,000 

3M バイト 

¥76,000 

数値演算プロセッサ 

MC 68881 RC16 

¥38,000 


PRK 質問箱 


)、購入後のメモリ増設はどうやるのでしょう? 

\、ご購入後の prk に対するメモリの増設は半田付け等の技術を要するため原則とじ r 当社 
に送り返じ r いただき増設いたします。自分でメモリ増設をする場合は通信販売のみです 
が必要な部品の販売も致します。御希望の方はお問い合わせ下さい。 

5、数値演算プロセッサに MC 68882を使用することは可能ですか? 

\、 MC 68882では動作しないソフトが存在するため使用できません。 

) 、「数値演算プロセッサのみ」や「プロセッサ無しメモリ無し」の PRK がほしいのですが? 

\、 PRK -10, PRK -00 の型番で商品化じ C おります。 

ミ最近 PRK をスロットに挿入したが動作しないと言う御質問を良く受けますが、ほとんどの場合は差し込み不足が 
原因です。 X68000 のスロットは大変堅く裏蓋が閉まる状態でも差し込み不十分の場合があります。御注意くだ 
さい0 


充実の BASIC HOUSE ソフトウ- 


ぎ速 12BIT,16CH A/D コンバータボード (KGB-AD12) XI ¥118,000 

7オトアイソレーション 16BIT デジタル入出カボード (KGB-PIO) XI ¥ 42,000 

ノレーション 16BIT デジタル入出カボード (KGB-X68PIO) X68000 ¥ 68,000 
、ンデイプリンタ&インターフェース (HANDYPRINTjack) X68000 ¥ 24,800 

§速 12BIT,4CH D/A コンバータボード (KGB-DA4) XI ¥ 98,000 

1用 ローコスト A/D&PI0 ボード (KG 巳- X1S) XI ¥ 19,800 

S 速 12BIT, 16CH A/D コンバータ (KGB-X68ADC) X68000 ¥128,000 

4180CPU ボード Mach 180(KGB-CPX 巳)X68000 ¥ 98,000 

] ーコスト MIDI インターフェース (MEL0D 丫巳〇X) X68000 ¥16,800 


JASIC 拡張関数パッケージ(巳 6-6301) ¥9,800 C 言語ライブラリ (B6_6305)¥6,800 
ド•ィスクキャッシャー (B6-6304) ¥6,800 Toys & Tools (巳6_6307)¥6,800 

iASIC 拡張関数パッケージ C 言語ライブラリ付(巳 6-6306) ¥14,800 

ァイコンエディタ (B6- 6303) ¥4,800 CP/M68K エミュレータ ( 巳6_6302)¥19,800 


おしらせ 




皆様に御愛用いただいているディスク 
キャッシャーが高速化(従来比平均3倍) 
を行ない VerUP いたしました。今回 
の Ver UP は八ードディスクキャッシャ 
一のみで HD-DISKCACHE Ver 
2.0 未満のキャッシャーを御持ちの方が 
Ver UP の対象となります。 

御希望の方は旧バージョンのデイスクの 
ラベルと代金¥1,500(送料、税込み)を 
同封して現金書留で御申し込み下さい。 


ビデオボードケース (KGB-BVBX) 

大好評発売中 


SHARP より発売されている CZ-6 巳VI 
を外付けにする、ケースです。このケース 
の使用によりあなたのX68000のスロット 
が開放されます。 

Human68k 下のソフトの CRT 出力を強制的に 15k 
HZ 出力にする(768><512モ_ド除く) 

おまけユーテイリテイ付き 


全国どこでも発送可長期クレジット OK 送料全国均一¥1,000宅配便にて即日配送 


本社営業部/マイコンショップ/通販部宇都宮市竹林町503—1 TEL0286 22 9811 FAX 0286 25-3970 
•口丨大田原営業所/マイコンショップ 大田原市美原 1 — 13— 4 TEL0287- 23 5352 FAX 0286 23 5364 

7 ィコンショップお申し込み•お問い合せは qO ク flfi — タク 雌〇/ 1 «(代 ) 
























MBIT 

アイビット電子株式会社 


分 p >|3 

パソコン本体から周辺機器まで品数取 D 揃え 

大特画!£ル莫施中ガ 


型名 

品名 

正価 

特価 

PC-E500BL 

ボケコン 

28.800 

19.800 

PC-I600K 

ボケコン 

69.800 

49.800 

PC-1360K 

ボケコン 

36.800 

32.800 

PC- 1360 

ボケコン 

29.800 

19,800 

PC-1262 

ボケコン 

24.800 

19.600 

PC-124BD 巳ボケコン 

11.000 

9.800 

PC-12B0 

ボケコン 

24.800 

19.600 

CE-T800 

ボケコン RS- 规 C コンパ -^-12.800 

11.800 

CE-203M 

ボケコン RAM32K 

32,000 

7,000 

CE-202M 

ボケコン RAM16K 

35.000 

6.000 

CE-201M 

ボケコン RAM 8K 

18,000 

3.000 

CE-1600M 

ボケコン RAM32K 

32.000 

16.000 

CE-1600F 

ボケコンフロッピードライブ 

39,800 

34,800 

CE-1600P 

ポケコンプリンター 

69.800 

59.800 

CE-1650F 

ボケコン □ 旧 K 

9,800 

8.800 

CE-161 

ボケコン RAM16K 

50.000 

3.800 

CE-1601M 

ボケコン RAM64K 

45,000 

30,000 

CE-1600E 

ボケコンディスクインタ-フェイス 

19.800 

17.800 

CE-158 

ボケコンレベルコンパター 

39.800 

31,300 

CE-159 

ボケコン RAM 8K 

35,000 

4.200 

CE-140T 

ボケコン RS-232C コンバタ - 

9.800 

8.800 

CE-140F 

ボケコンフロッピディスク 

49.800 

44,800 

CE-123P 

ポゲコンブ U ンター 

19.800 

17,800 

CE-120P 

ポゲ =] ンプ 1 J ンター 

24.800 

21.800 

CE-124 

ポケコンカセットインター 

4,500 

4.000 

Z-VISIONdIus 

Z80 シュミレータテパッか • 59,800 

51,000 

UX-1 

ホームコピーファクス 

78.000 

69, 的 0 

PA-9500 

八イパー電子手帳 

48.000 

特価 

CZ-300F 

XI3 •マイクロフロッピー 

79.800 

9.000 

CZ-31FS 

300F 増設フロッピー 

59,800 

7,000 

CZ-82F 

CZ-802C 増設フロッピー 

59.800 

6.000 

CZ-501H 

XI 増設用八-ドディスクニット 

258.000 

60,000 

CZ-503F 

CZ-83D 増設ドライブ 49.800 

30.000 

CZ-520F 

2HD/2DD ミニ 7□ ツビ - ドライブ 118.000 

70,000 

CZ-6BP1 

数値演算ボード 

79.800 

63,800 

CZ-6BU1 

:バーサ ル 1 /◦ボード 

39.800 

33.800 

CZ-6BM1 

MIDI ボード 

29.800 

23,800 

CZ-6BEIB 

1M 増設 RAM ボード 

28.000 

19,500 

CZ-6B 日 

1M 増設 RAM ボード 

35.000 

29.500 

CZ-6BE2 

2M 増設 RAM ボード 

79.800 

63.800 

CZ - 阳 E4 

4M 増設 RAM ボード 138.000110.400 

CZ-6BN1 

スキヤナーボード 

29.800 

25.300 

CZ-6BF1 

闩 S-232C 増設ボード 49.800 

42.300 

CZ-6SD1 

システムラック 

44,800 

38,000 

CZ-6TU 

RRG 巳システムチューナー 33.100 

26,500 

CZ-6BG1 

X6B00GP 旧ボード 

59.800 

50.000 

CZ-6BC1 

X6800FAX ボード 

79,800 

B 7,800 

CZ-6PV1 

ビデオプリンター 

198.000158.000 

CZ - 阳 VI 

ビデオボード 

21,000 

16.800 

CZ-B22C 

X1GMODEL30 

118.000 

39.800 

CZ-820C 

X1GMODE し 10 

69.800 

16.800 

CZ-8B8C 

X1TURBO 



CZ-8BGR2 グラフィックボード XI 

14.800 

3,000 

CZ-8BF1 

F □インターフェイス 

14.800 

11,500 

CZ- 肥! <2 

XI 漢字 ROM 

19.800 

16.800 

CZ-8BM2 

232 。マウスボード 

19.800 

16.800 

CZ - 阳 E2 

320K 外部メモリー 

29.800 

25.300 

CZ-8BR1 

立体映像セット 



CZ-8BV2 

カラーイメージボート 

39,800 

32.000 

CZ-8BQ1 

FD インターフェイス 

14,800 

8,000 


CZ-8TM1 XI ソフト付モデ ^ ユニット 29,800 5,000 


型名 


品名 


正価特価型名 


CZ-8TM2 XI ソフト付モデムユニット 49,800 39,800 
CZ-8EB3 拡張 j/obox 33,800 28,000 
CZ-8LM1 232c ケーブル 7,200 6.000 

CZ-8LM2 232C クロスケーブル 7.200 6,000 

CZ-8NJ1 ジョイカード 1.7001,360 

CZ-BNT1 トラックボール 13,80011,500 

CZ-8PK10 24 ドット 13 晰漢字プリンター 99.800 69,000 
CZ-8PK7 24 ドット 80 衍漢字ブリンター 122.000 59,000 
CZ-8PC4G 丫撕ット熱転写カラ - 漢字カンタ - 99,800 59,800 
CZ-BBS1 XI FM 音源ボード 23.80019,800 

CZ-8BK4 XI 第 2 水準 ROM - 5,700 

CZ-8NJ2 インテリジェントコントロ - ラー 23.80018.500 
CZ-8NS1 カラーイメージスキャナー 188,000149,000 
AN-S100 アンプ付スピーカー 36.600 29,500 
HXD040 アイティム ■ 八 - ドディスク (ITM) 118.000 95.000 
HXD140 觀ハ - ドディスク内翮 (ITM) 98.000 75,800 
CU-14FD 肟ーディスプレーアナログ 0.31 74,800 49.800 
MZ-1D10 『モノクロディスブレー 41,800 25,000 
MZ-1D17 15*CRTmz-5500/6500/2124.000 59,800 
MZ-1E05 MZ- 2000 FD インターフェイス 24.50018.000 
MZ-1E08 カンター I/F 2000/ 謂 /80 日 9.000 8,000 
MZ-1E11 MZ- 6500 用 SFDI/F 38,000 25,000 
MZ-1E04 MZ- 2000 ブリンター I/F 10.000 6.000 

MZ-1E21 MZ- 5500 GPI/F 36.00018,000 
MZ-1E18 MZ 200 0Q □ 用インタ - フェイス 9.800 3,000 

MZ-1E33 MZ 6500 パラレル I/F 34.800 28.000 
MZ-1E45 MZ6500 P32CI/F 50.00015,000 
MZ-1E32 MZ 2500 パラレル I/F 30.000 27,000 
MZ-1E44 MZ-6500 S-RN I/F 50.00015,000 
MZ-1E22 MZ-5500 GPIB I/F 72.800 25,000 
MZ-1E29 RS - 规 C インタ - フェイス 300BT 17.800 9.800 

MZ-1E01 MZ- 3500 232 C ボード 28,00013.000 
MZ-1E14 MZ1500 QD 用インタ - フェイス 9.800 3,000 

MZ-1M01 MZ- 2000 棚 16 ビットボード 78.000 8,000 
MZ-1M09 MZ • 圆疆 -P 演舞ブロセッサ 82.000 30,000 
MZ-1M03 MZ- 5500 数値演算 69,000 38,500 
MZ-1M12 MZ-2861 圆演縴プロセッサ 90.000 72,000 

MZ-B0P4B 136 桁ドットプリンタ - 48.000 

MZ-1P06 ドットプリンター 234.000 45,000 
MZ-1P28 ドットプリンター漢字 80 衍 148,000118.400 
MZ-1P10A 24 ドットブリンター漢字 80 衍 245.000 79,000 
MZ-1P22 熱転写漢字プリンター 59.800 25,000 
MZ-1P29 漢字ブリンター 136 桁 168.000134.400 
MZ-1P30 136 桁ブリンター 228.000120,000 
MZ-1R01 MZ- 2000 /2200G ボード 39.80010.000 
MZ-1R10 MZ- 5500 漢字闩〇 M 付 30J00 9.800 

MZ-1 闩 09 MZ-5500 V.RAM 35.00015.000 
MZ-1R06 MZ-5500 増設 RAM 45,000 8.000 
MZ-1R12 MZ-80B/2000/1500/700 RAM 35.000 8,000 

MZ-1R11 MZ- 5500 256 KRAM 80.000 35,000 
MZ-1R36 MZ-28611M 増設 RAM 45,00015.000 
MZ-1R35 MZ-28611M 増設 RAM 55,00019,000 
MZ-1R14 MZ- 5500 辞書 ROM 40.000 22.000 
MZ-1R16 MZ-5500 1E0KRAM 30,000 8,000 

MZ-1 闩 27A MZ- 2500 VRAM 13,00010,000 
MZ-1R86A MZ- 2500 増設 RAM 15,00012.800 
MZ-1R21 漢字 ROM 38.00013.000 

MZ-1R24 MZ-1500 辞書 ROM 22.000 6.000 
MZ-1R32 MZ- 6500 RAM 80.000 40.000 
MZ-1R31 漢字 ROM 28.000 20,000 

MZ-1R28A MZ-E500 辞書 ROM 13.00010,000 


品名 


正価特価 


MZ-1P22 増設 RAM17-22 32,000 
MZ-1D17 チルトスタンド 12.000 
MZ-2200 デー ^ ーレコーダー 19,800 
MZ-5500 データ - レコ - ダ -12,000 
MZ- 2500 拡張ボード 9,000 
パソコン FAX 278.000 

モデムコニツト 21.800 

MZ-5500 附属 - 

MZ- 6500 MSDOSGWBASIC 60,000 
MZ-5500 GW 巳 ASIC 50.000 
MZ-6500 日本語ワープロ 49,800 
MZ-6500 TODAY 68.000 
MZ-6500 書院 RAM 付 69,800 
MZ-6500 書院 RAM なし 49.800 

MZ-5500 附属 - 

MZ-5500 MSDOS 25,000 
MZ- 55001 BM 変換 30.000 
本体 3 昍 ,000 

本体 2 昍 ,000 

MZ-1500 QD 通信ソフト - 

ブランク QD DISK 450 
MZ-1PO カツトシ - トフィーダ - 60.000 
MZ-1P10 カツトシード 95.000 
MZ- 剛ツトシ - トフィ + 50,000 
MZ-1P27 カツトシ - トフィ - ダ - 58.000 
MZ-1P06 卜为夕 - フイ-ド 
MZ-1P22/17 口-ルホルダー 
MZ-6500(50)CP/MB8BASIC-3 


MZ-1RP9 
MZ-1S13 
MZ-1T02 
MZ-1T03 
MZ-1U09 
MZ-1V01 
MZ-1X22 
MZ-PZ016 
MZ-2Z0P8 
MZ-2Z023 
MZ-2Z031 
MZ-2Z029 
MZ-2Z064 
MZ-2Z0B5 
MZ-2Z012 
MZ-2Z013 
MZ-4Z001 
MZ-5521 
MZ-5511 
MZ-5Z013 
MZ-6F03 
MZ-6P18 
MZ-6P11 
MZ-BP29 
MZ-BP27 
MZ-BP06 
MZ-6P20 
MZ-BZ88 
MZ-6Z25 
MZ-B0T20A MZ-80 マシンランゲ - 


15,000 
3,000 
10.000 
39.800 

• ジ 6.000 

MZ-B0TUB MZ-80 バックアップ 20.000 
MZ-B0TU MZ-B0 システムブログラム 20,000 
MZ-80T40A MZ-80 PASCAL 10.000 
MZ-80T70A MZ-80 FIDOS 20.000 
MZ-8BGK MZ-80 BGRAM2 39.000 
MZ- 阳 104 MZMOGP IB インタ - フェイス 45, 000 
MZ-8BG MZ-80BGRAM1 39.000 
MZ200/2200GPB ケープル 18,000 
X286 しスロット巳 OX 
4M RAM ボード 
辞書 ROM ボート 
2M RAM ボード 
拡張グラフィックボード 
1M RAM ボード 
2M 闩 AM ボード 
80 桁漢字プリンタ 
136 桁漢字プリンタ 


MZ-BBC01 

UE-1U01 

UE-1R02 

UE-1R06 

UE-1R01 

UE-1R05 

UE-1R03 

UE-1R04 

UE-1P03 

UE-1P04 

UE-1P05 

UE-IP02 

UE-1P01 

UE-1E04 

UE-1E02 

UE-1E03 

UE-1D03 

UE-1D02 

10735X 


12.000 
5.000 

8.500 

8.500 
7.200 

85.000 
13.000 
5.000 
35,000 
30,000 
15.000 
20.000 
28.000 
15.000 
5,000 
20,000 
8.000 
55,000 
35.000 

3.500 
400 

35,000 
35,000 
37.500 
39.800 

7.500 
2,700 
6,000 

15.000 
5.000 
8.000 
8,000 
5.000 
7,000 
10.000 
18.000 
10,000 
8.000 
5,000 4,000 
300.000 240,000 
32.800 85.600 
160.000128.000 
92.000 55.000 
100.000 80.000 
180,000144,000 

-特価 

-特価 


136 衍漢字水平プリンタ - 


特価 


高速 136 桁漢字プリンタ 550.000 440,000 
136 桁漢字プリンタ 268,000 214,400 
S-RN インターフェイスカ - ド 70.000 56,000 
AX286LIC カード I 45.000 36,000 
5TD インターフ I イスか • ド 28.000 H 2,400 
15 インチカラーディスプレイ 123 . 000 98.400 
14 インチカラ - ディスプレイ 158.000126.400 
カラープリンター 248.000195,000 
BF-68PRO フィルター 19.80016.800 

XBBOO キーボード延長ケーブル (1.5m) 2.500 2,000 

ディスプレーケーブルアナログ 15P(3m) 5,000 4.000 

デイスプレーケーブルアナログ 1 5P(1.5m) 4.300 3.500 


ポケコン関係周辺機器サプライ製品及シャープ関係のソフトウェア全種取扱います> 


FM TOWNS/FM NOTE / 東芝ダイナブック、周辺機器も取扱っております。 






















X 咖的全機種取り揃え大特価 1 z ■ル 

シャープパソコンフェア ’91 J /]9*20 開催 


So 

響' 腳"® 


MBIT 

アイビット電子株式会社 


ワープ CK パソコンお買〇上けの方は • 
ワープ□•パソコン教室が御利用に/3 
れま穿。 


PIXEL.A 
MacII フルカラー • 
イメージクリエータ 
〈ビクセカラー735/ 

定価 ¥128,000 

新発売/入荷 




SHARP 
光磁気テイスクドライブ- 


JY -7000 

新発売/入荷 


i 


SHARP X 68000 シリーズ対応八ードディスク 


<ITEM> 


HXD 040 23 IT 1 S X 68000 

定価¥118.〇〇〇ィ特価¥95,000 

HXD 042 X 68000 墩投用 

定価 ¥ 128.000 :特価 ¥ 102,500 

HXD 140 X 68 Q 00 内鼸用 

定価 ¥ 98.00 (K 特価 ¥ 79,800 

(602.603 は HXD-140 に 内®) 


1 你■凡 〆 u •ソ 、 w ___ 

YYRBOOO 特価表示は、才-プン記念特別価格にてご提供いたします) 

し - 特価表示は TEL にてご確認下さい。 - 


SHARP 

GZ _602 G (本体) 


CZ-602C (本体) 


CZ-603C (本体) 


CZ-603C (本体) 


[-プラス MOM 八ードディスク付一! 
CZ -603 D ¥315,000 

CZ -602 D ¥350,000 

CZ -612 D ¥365,000 

CZ -613 D ¥375,000 


「ブラス(ディスプレイ)組合せ一! 
CZ -606 D ¥270,000 

CZ -613 DGY ¥310,000 

CZ -605 DGY ¥300,000 

CZ -611 DGY ¥285,000 


プラス MOM 八ードディスク付一! 
CZ -603 D ¥365,000 

CZ -602 D ¥380,000 

CZ -612 D ¥395,000 

CZ -613 D ¥400,000 


「プラス(ディスプレイ)組合せ一 
CZ -602 DBK 特価 

CZ -606 D 特価 

CZ -611 DGY ¥305,000 

CZ -613 D 特価 


CZ-604C (本体) 

プラス(ディスプレイ)組合せ一 

CZ -604 D 特価 

CZ -611 DGY ¥310,000 

CZ -606 D 特価 

CZ -605 D 特価 


CZ-623CTISI (本体) 

ブラス(ディスプレイ)組合せ一! 
CZ -611 DGY ¥445,000 
CZ -612 DGY ¥460,000 
CZ -613 DTN 特価 
CZ -21 HD 特価 


CZ-652C (本体) 

「ブラス(ディスプレイ)組合せ一! 
CZ -602 DBK ¥275,000 
CZ -606 D ¥260,000 

CZ -612 DGY ¥290,000 
CZ -605 D ¥290,000 


CZ-653C (本体) 

ブラス(ディスプレイ)組合せ 一 ^ 

CZ -602 DBK 特価 
CZ -606 D 特価 

CZ -612 DGY ¥290,000 
CZ -605 D 特価 


幻パソコンゲームソフト ( Xl 、 Xlt 対応) [ 


トンネルズ&トロールズ . 

ロードウォー 2000 . 

•xi/xit 

“Xlt 

... Y 1 i 

特価 

¥8.330 

¥8.330 

¥6.630 

¥8,330 

¥3,230 

¥3,230 

¥3,230 

¥3,230 

¥12,580 

¥6,630 

y ^j}\j y 

Alt 

ソー サリアン ( ユーティリティー )… 

、 i 朴 117、' M 广 1 . 

•••八 It 

… Xlt 

ノ 7 V / ^ INO. 1 

、 j 朴窗 |*7 ^、メ 0 . 

Alt 

ノ リ / 〆 INO.Z 

\ y ノ Ma 〇 . 

•••Alt 

ノ リ A〆 INO.O. 

一 RF1 士 M . . 

A11 

一 . 

ラスト•ハルマゲドン . 

M. 崖 1 . 

* * * A11 

… Xlt/Z 

... V 14 

/K /Nil す。,。 

ソ / r v 

★ . 

八 -t-u,uou 

+ ■•发 . 

八 11 

¥8,330 

¥8.330 

¥8,330 

¥7,480 

¥5,525 

¥6,800 

¥8,330 

入肌 /# 研 TX 

17 /j -T . 

* * * A 11 

r ワ入 

. 

•••Alt 

•••Xlt 

\BTkyfJ*7mL vWttiU/ 

了ガ 4f ノ J し . 

… Y1 ♦ 

エフル 
u : ix 

A 11 

上/毎 

マスター オブ モンスター ズ 
ウイザードリー . 

•Xlt 
… XI 八 




特価 

パ 7 フル まあ一じやん 2 …… 

•… Xlt 

¥6,630 

サイオプレイド . 

•… XU 

¥7,480 

ザナドウシナリオ H . 

•Xlt 

¥4,930 

琥珀色の遗言 . 

••••Xlt 

¥8.330 

倉庫番 . 

•…) a/t 

¥5.780 

INKPOT . 

.… Xl/t 

¥15,300 

マシン 首ゲ ーム . 

"•• Xl/t 

¥3,660 

構造化 BASIC のすすめ… 

".. Xl/t 

¥3.660 

マクロアセ W ラー MACRO -80--- 

"•• Xl/t 

¥17.500 

信長の野望全国版 . 

"" Xl/t 

¥8.330 

ファンタジー m . 

•… Xl/t 

¥8,330 

マイト•アンド•マヂック2…… 

•… XI 

¥8.330 

ビジレス . 

•Xlt 

¥40.800 

デパイス モニター . 

•… Xl/t 

¥4,900 

JET ターボターミナル . 

-Xlt 

¥8,330 

金庫番 . 

".. Xl/t 

¥9,000 

麻雀悟空 . 

"•XI 

¥5,780 

ダ•ビンチ(スーパーグラフィック 2) … 

… Xl/XIt ¥5,780 

CZ -16 ILFC . 

•… Xl/t 

¥11,700 

CZ -115 し F FORTRAN " 

… Xl/t 

¥11,700 


アイヒ^/卜推奨テイスブレイ1 

シャープ 

CZ-611DGY 

ドットビッチ0.31 
チルト台付 

特価 ¥79,800 

:フ 


シャープ 

CZ-8B0D 
特価 ¥59,800 

r—i 

シャープ 

CZ-B02D-BK 

(1S 型アナログ TV/ 

3モードオートスキヤン) 1 

特価 ¥75,000 

_ 


シャープ 

21G-SF1 

スーバーファミコン 
内葳 テレビ 

特価 ¥125,000 

: ..X, 鱗. • 

• C 


※シャープ周辺機器(拡張、プリンター他)も常時取り扱っております。 


霣士通 

FM R50 
FM NOTE 

岭特価¥190,000 

a 


SHARP 

AX288N-H2 

AIMn^ote 

特価 ¥35® 000 

付け% ' ライブ!^ット 


岭特俩 ¥ 358 |000 ■►^*¥'15510 

外付け 1 ライブ 妻ット mr ~: m 


NEC 

PC-98HA 

NOTE 

551000 


TOSHIBA 

J- 310 OS S001 
DynaBook 

定価 ¥198,000 

峰 細 M 90 00 

キャリングケ 

: 


富士通 FM TOWNS お霣得セツト 


FM TOWNS 

モデル2基本セツト 

FM TOWNS -2 ¥398,000 

FMT - DP 533 V 69,800 

FMT - KB 101 ¥ 20,000 

B 276 A 010 _¥ 20,000 

定価合計 ¥ 507,800 

特価 ¥888,000 


FM TOWNS 

1 S 拡張2セツト 

FM TOWNS -1 S ¥338,000 

HM -01 T ¥ 32,800 

FMT - DP 533 V 69,800 

FMT - KB 101 ¥ 20,000 

B 276 A 010 V 20,000 

定価合計 ¥480,600 

特価 ¥208,000 


FM TOWNS 

1拡張2セツト 

FM TOWNS- 1 ¥338,000 

HM-01T ¥ 32,800 

FMT-DP533 ¥ 69,800 

FMT-KB101 V 20,000 

B276A010 V 20.000 

FMT-FD301 ¥ 28,000 

定価合針 ¥508,600 

特価¥218,的0 


FM TOWNS 

2 F 基本セツト 


FM TOWNS 

2 F 基本セツト 


FM TOWNS 

20 F 基本セツト 


FM T 0 WNS -2 F 

¥ 378,000 

FM TOWNS 2 F 

¥378,000 

FM TOWNS 20 F 

¥323,000 

FMT - KB 101 

¥ 20,000 

FMT - DP 533 

¥ 

69,800 

FMT - DP 533 

¥ 69,800 

FMT - DP 533 

¥ 69,800 

FMT - KB 101 

¥ 

20,000 

FMT - KB 101 

¥ 20,000 

B 276 A 010 

¥ 20,000 

B 276 A 010 

¥ 

20,000 

B 276 A 010 

¥ 20,000 

定価合計 

¥487,800 

定価合計 

¥487,800 

定価合計 

¥432,800 


特価 ¥278,000 


特価 ¥278.000 


超特価 


(TOWNS お買い上げの方〉パソコン教室が御利用できます。初•中•上級者無料にて実施中/ 

〈全商品新品完全保証付〉 ■シャーブポケコン全 商品販売中。 カタログ、 特価表ご誚 求くださぃ (干 72 ) 


^0426-45-3002(i)=i88Ji i 

FAX.0426-44-6002 

•営業時間/10:00~19:00修電話受付/20:00迄可#定休日/水曜日 


SHARP SUPER XEX SHOP 


アイヒット電子株式会社亍版東京都八王子市北野町 560-5 



全通販 

gj |P| Sg 

北海 m から沖縄まで 


★送料はご注文の際にお問い合わせ下さい。 

★揭敉の商品は、すべて新品、保証脔付きです。 

★褐故の商品は充分明谳してありますが、ご注文の陈 
は、在庳の確姐の上、祝金羝留または、銀行抿込で 
お中し込み下さい„全商品クレジツトでも扱っております0 
★ お申し込みの際は必ず祗話抵号を明!!己して下さい。 
★商品,品切れの節はご容敉下さい。 


富士銀行八王子支店(普)1752505 


♦本誌発売時には上記価格よりさらにお求めやすい価格に変更されている場合があります> •この広告の商品にはすべて送料•消费税は含まれておりません。 
















































































































































当社は X 68000 の販売認定店です) 

どんなことでも安心してご相談ください。 





★この表以外の組合せ、お支 
払い方法もご自由にできます> 
★XI シリーズ用、 X 68000 シリ 
ーズ用各社ハードディスク/プ 
リンタ等の周辺機器を大特価 
にて販売じ r おりま to 
電話にてお問合せ〈ださい0 


X 6 日000シリーズ用周辺機器•ソフトオール超特価// 


•渋谷/ 

A 谷邺便蛘〇 

lokx / ivh # i 

安田は ItO l 

、雩 msy r 

i m " 

i OtflW 鱷 n 〇聚 ft 文化会雙 

r 

P 力谷 

*〇 

C 明治扇り 

* 士 ttnO 

東 s 東惰 /r 

= H 渋谷 駅 I 

J ハチ公前 ? 

sj 

_ ) 

1 至•比« 

ij 

こ 


型番 

品 名 

\定価ノ 

ソフト名 

品 名 

\定価/ 

CZ -6 VT 1 

カラーイメージユニット 

W 69.800/ 

MUSIC PRO 

MIDI 版 

\¥ 28.800/ 

CZ -8 NS 1 

カラーイメージスキャナ 

V 188.0 C 

i(y 

MUSIC PRO -68 K 

マウスを使った楽譜ワープロ 

V 18.80(/ 

CZ -6 BE 1 A 

IMB 增設 RAM ボード 

^ 38.00 


SOUND PRO -68 K 

サウンドエテ V 夕 

^ i 5.8 qd 

CZ -6 BE 2 

2 MB 增設 RAM ボード 

¥\79,800 

Sampling PRO -68 K 

AD POM サンプリングエディタ 

¥\ 17.8^0 

CZ -6 BE 4 

4 MB 增設 RAM ボード 


10 

Musicstudio PR ( H 8 K V .1.1 

MIDI マルチレコーテ•ィングソフト 

¥卜釦〇 

CZ -8 NM 3 

マウス•トラックポール 

¥ Vo 

10 

OS -9/ X 68000 

マルチタスクオペレーティングシステム 

¥ W 800 

BF -68 PRO 

高性能 CRT フィルター 

¥ 1^800 

PRO -68 K 

サイパーノート 

¥ 1)|.800 

C 2-6 BP 1 

数値演算プロセッサ•ボード 

¥ 7細00 

PRO -68 K 

ステ ーシヨナリー 

¥ 

C 2-8 NT 1 

トラックポール 

¥帅 

10 

Ccompiler PRO -68 K 

ソフト開発セット 

¥ >9.如0 

CZ -6 BM 1 

MIDI ボード 

¥/26.80 

[〇 

Human 68 K Ver 2.0 

開発ツールセット 

¥/ 9.8^0 

CZ -8 NJ 2 

アナログスティック 

V / 23,80 

|Q 

PIO -6 BE 1 -A 

内蔵 1 MRAM 

¥ 25.00¢! 

CZ -6 TU 

パソコンチューナ 

f 33.10 

to \ 

PIO -6 BE 2-2 M 

2 MRAM 

私 60.000\ 

SX -68 M 

MIDI I/F 

/¥ 19.800 \ 

PIO -6 BE 4-4 M 

4 MRAM 

/¥ 88.000 \ 

XE -1 AP 

アナ Q グジョイパッド 

/¥ 13.800 

MUI-B 

MIDI I / F + ソフト 

/¥ 39.800 


▲上記以外ビジネスソフト、最新ゲームソフト豊富に在庫あります0※送料はご注文の際お問合せください。•超特価販売中/ 


パソコン専門シヨツフ 




VDhOUI^h^/mm 


•渋谷店 s 03-3486-6541( 代) 


亍150:東京都渋谷区渋谷 H 2-7 三和渋谷ヒル 
振込銀行:太陽神戸 E 井銀行渋谷宮益坂支店 f No . 5000340 


籲横浜店 0045-314-4777( 代) 


〒221:横浜市神奈川区«屋町 2-12-8 第1建設ビル 
振込銀行:三和銀行横浜駅前支店® No 310852 


6 日 000 NEW EXPERTS 


• C 2-603 C (本体) . ¥ 338.000 

• CZ -613 D (カラーディスプレイテレビ) . ¥135.000 

• CZ -8 NJ 2. ¥ 23,800 

• お好きなゲームソフト1本 . ¥ 9,800 

■定価合計 . ¥506,600 


クリエイ H 

寺価 

均等払い 

¥ 9,970x480 

¥12.840 x 36 回 

¥18,660 x24 回 

ポー ナス 

なし 

なし 

なし 


均等払い 

¥ 7,320 x 48 回 

¥10.100 x 36® 

¥13,450 x 24® 

ボーナス 

¥ 42.000 x 8 回 

¥ 50,000 x 6 回 

¥80.000 x 4® 


※本広告に掲載の全商品の価格について消費税 
は含まれておりません。 


00 UUU 

c 5 台限定 


"セット 


> CZ -602 C-GY (本体) . 

> CZ -603 D-GY (カラーディスプレ仆. 


. ¥356,000 
•¥ 84,800 


■定価合計……- 

大特価¥279,000 


•¥440,800 ►大特価 ¥279,000 


均等払い 

¥12.850 x 24 回 

¥ 8,870 x 36 回 

¥ 6,920 x 48 回 

ボーナス 

なし 

なし 

なし 


日 000 NEW PROE 


• CZ -653 C (本体) . ¥285,000 

# CZ -60 D (カラーディスプレイ) . ¥ 84,800 

拳お好きなゲームソフト1本 . ¥ 7,800 

■定価合計 . ¥377,600 


クリエイト特価 


I 均等払い 

¥ 7,680 父 48回 

¥ 9,890 x 36回 

¥14,370x24® 

1 ボーナス 

なし 

なし 

なし 


XX68000 supers^ 


• CZ -623 C-TN (本体.キーポード.マウス) . ¥498,000 

參 CZ -613 D-TN (カラ-デ< スプレイ) .¥135.000 

• CZ -6 BP 1. ¥ 79,800 

■定価合計 . ¥712,800 


クリエイト特価 


XSBBOOO NEW EXPERT! 

ミュージシャンセツト。これも TM ネットワークだよ 〜V 


參 CZ -603 C . ¥338,000 

參 CZ -605 D . ¥115,000 

• MU 1. B ( MIDI ボード&ソフト) . ¥ 39,800 

• CM 32 L . ¥ 69,000 

_グラナダ . ¥ 8,800 

•JOY カード . ¥ 1,800 


■定価合計 . ¥572,400►起特価¥458,000 


SSG8000 NEW PROS 

ゲーマーズセット。遊んで暮らせる SET / 


•PROD CZ 653 C . ¥285,000 

•0.31 CRT CZ 603 D . ¥ 84,800 

•グラナダ . ¥ 8,800 

• Y’S . ¥ 8,700 

參ポビユラス . ¥ 9,800 

•スーパーハングオン . ¥ 8,800 

參エージャックス . ¥ 8,800 

參サーク . ¥ 8,800 

•アールタイプ. . ¥ 7,800 

•アナログ JOYSTICXE -1 AP . ¥ 13,800 

■定価合計 . ¥445,100►起特価 ¥353.000 


新春大感謝セー 


営業時間(定休日►渋谷店:日曜•祭日/横浜店:水曜) 

AM 10:00~ PM 7:00 


X^BBOOO XYBBOOO 


ク UHV 卜特典 












































































































































このキーボードは一味違うガ 


ステージ I …合計94個のキースイッチをクリック感抜群の物と交換// 
ステージ II …ステージ I +キーボードの101箇所に (§) 入力防止処理を施します。 


あな怒 (D B 日000 の丰ー ポ ー ドを 

チューンナップします。 


ご注意 


f LED 付のキー7個 
• 巳 REAK . COP 丫キー 
1^トド10キー 


は構造上 

変更出来ません。 


その他の入力に必要なキーを変更します。 

春 X 68 KP 闩〇 • PRO II には対応していません。 



ステージ I …¥19,800 
ステージ II …¥29,800 


• 当社からの発送代金は全てサービスです。 
• 消費税は、いただいておりません。 


CYBER Corp. 

is サイバー ' 亍 227 横浜市緑区鴨志田町 80 卜 32 
お問い合わせは、お気軽に TEL . 045(962)1447 FAX . 045(962)1457 


信販売のみ 


ご注文は、住所•氏名•年齢 • TEL • 御支払方法 
そして、 ステージ I か ステージ II かを選んで、 
TEL • FAX • はがき等でお申し込み下さい。 

御支払方法1 . 現金書留 • 郵便為替 

2. 郵便振替横浜 4-3 1963 

3. 銀行振込協和銀行泊江支店 

当座009867 

入金確認しだい梱包用の箱をお送りしますので、 
あなたのキーボードを入れて御返送下さい。 

当社に着きしだいすぐに作業にかかり、約一週間で 
お手元にお届け致します。 


_情報処理 

► 総合コースー8力月 

►受験コースー6力月 v ^長可能。 ) 


踞副_齬园 sm 

♦学生の方には、特別学割受 
講制度があります。 
♦企業における集団受講 (3 名 
以上)の場合にも割引制度 
があります。 


窈圈函⑩題荧 51 ® 

n 入門コース併設で、初心者の方でもやさしくマスターでぎます。 

0試験合格にマトを絞った実戦的オリジナルテキストで、アセンブラ 
言語 c as l にも対応。 

B プログラミング言語は、実務 • 受験に有利なフォートランかコボル 
のどちらかを選択でぎます。 

□駿台電子ベテラン講師陣による受験 (13 回)、総合 (15 回)におよぶ個 
人別添削指導で、特に合格の決め手になる「プログラミング」を徹 
底指璋。 

S 企業研修の一環として受講される場合、労働省「生涯能力開発給付 
金制度」の適用が受けられます。 



灘麵 ® 

★ハガキか電話で下記まで。 


学校法人駿河台学園 〒101東京都千代田区神田駿河台 2-1-20 お茶の水ユこオンビル 5 F 

駿台電子情報専門学校 OhX ①係 FAX 03(3293)3739 


























A 雜 ESS 

XSZ 7 エミュレータ 


好評発売中 

定価 ¥9,80 C 



X 1エミュレータは X 68000 上で X 1シリーズのアプリケーションを実行1 
るためのソフトエミュレータです。 XI のアプリケーションを完全にソフト 
ウェアのみでエミュレートしているため、 XI 上での実行速度と比較して 
平均3〜5倍程度おそくなりますが、 XB 8000 のマシン上に実現した仮想 X 
マシンを楽しめます。また、 XI と X 6 即00の相互間でファイルを転送す3 
ためのユーテイリテイと専用ケーブルが付属しますので、 XI 上で作り上 I : 
たソフトの資産を X 68000 上に移行することも簡単にで杏ます。 


エミュレータの機能 

♦ XI エミュレータは XI に相当する機能をエミュレート0 

この仮想コンピュータには最大4つのドライブが仮想的に接続。 

* XI エミュレータからみたドライブは Human 68 k のドライブ上にある 
ファイルで仮想的に実現。このファイルは XI 用の 5" 2□ディスクのイ 
メージをファイル転送ユーテイリテイでまるごと転送したもの。 


* X 1エミユレータで仮想的に実現した X 1は仮想ドライブから起動。 
このため仮想ドライブ用ファイルには、 XI を立ち上げるために必要? 
HuBASIC や CP / M などのシステムプログラムが必要。 

籲 XI エミュレータでは、 XI の持つ VRAM を含むメモリイメージ J 
Z 80 CPU を仮想的にソフトウェアで実現。 


ファイル転送ユーティリティ 


ディスク転送 I 

XI ディスク MXB 8000 Human 68 k (5 n 2□ディスクイメージファイル) 

春 X 〗エミユレータでは Human 68 k 上のディスクイメージファイルを仮 
想ドライブとして使用。 

I ファイル転送 I 

XI 巳 ASIC : CP / M 和岭 X 68000 Human 昍 k 
籲 XI で作ったプログラム S データを X 68000 上で使用。 

※付属の専用ケープルを XI と X 68000 に接続してファイルを転送します。 



エミュレータ OSA 十/:ぬ:し編 

Q . ファイル転送のために別途 RS -232 C ケーブルを買わないといけない 
のですか7 

A . 専用のケーブルが付属しますのでその必要はありません。 

Q . XI 巳 ASIC のプログラムを X 昍000上の X - 巳 ASIC で使えますか7 
A . 通常のセーブではコードが違ラので使用で吉ませんが、アスキーセー 
ブしたファイルであれば X - 巳 ASIC 上でそのまま口ード可能です。 

Q . Turbo 巳 ASIC で作成した住所録などの漢字を含んだデータがある 
のですが X 68000上にファイル転送で吉ますか7 
A . XlTurb ◦も X 6 B 000 も漢字はシフト J 旧コードなのでファイルの 
転送は可能です。ただし、漢字 ROM を必要とするものはサボートし 
ていません。 


Q . Turbo 用のソフトは動きますか? 

A . X 】用のみで Turbo 専用のソフトは動きません。 

Q . ゲームは 動きますか7 

A . 純粋に BASIC でかかれたものは動きますが、プロテクトがかかった : 
のや直接八ードをアクセスするよ5な市販のゲームは動きません。 

* タイミング等八ードウエアに依存するようなソフトは、原理上実行できない、もしく 
正常に動作しない場合がありますのでご注意ください。 

* 一部サボートしていない機能があります。 


[3(1 エミュレータ通信販売| 購入希望として住所、氏名、電話番号をお5 
らせくださし〗。注文書をお送り致します。 


* この商品価格には消費税は含まれておりません。 

* CP / M はデジタルリサーチ社の商標です> 

文中のソフトウエアは各社の商標です0 

ヽ * 製品の仕様、名称は予告なく変更する場合もございますのであらかじめご了承ください。 


囍アクセス 


〒丨〇丨東京都千代田区神田神保町卜 I 
神保町協和ビルフ 
S 03( 3233 )0200( 代) FAX .03(3291 )70 


\ 


















東京都渋谷区道玄坂 2 丁目28番4号 S (03) 3496-4141 
東京都町田市森野1丁目29番16号〇 (0427) 23-1313 
It 都 A 王子市謂 II 番1号 Ai 子そごう 7 FS (0426) 26-4141 
東京都立川市幸町4 -39 - 10(0425)36-4141 
厚木市中町 3-4 - 300)462)25-1548 
富山市桜町2- 1一 100(0764)32-3133 
金沢市入江2 - 630(0762)91-1130 
金沢市寺地2 - 3 S (0762) 47-2524 
名古屋市中区大須4 丁目 2-480(052)262-1141 


スタータキットのお救)は JSP 各店でどうも 


新テクノラント 大阪市浪速区日本俺5丁目6番7号 0(06) 634-1211 藤井寺店 
メディアラント大阪市浪速区日本橋5丁目8番26号 S (06) 634-1511 岸和田店 
コスモラント大阪市浪速区難波中2丁目1番17号 0(06) 634-3111 さのみや1は AH 
U . S . LAND 大阪市浪速区日本橋4丁目9番15号 S (06) 634 -Mil 西宮店 
ビジネスランド大阪市北区梅田 1-1-3 大阪駅前第3ヒル B 2 fi (06) 348-1881 姬路店 
梅田店大阪市北区小松原町1- 10 S (06) 362-1141 京都寺町店 
高槻店高槻市高槻町11番16号 S (0726)85-1212 京都近鉄店 
くすは店枚方市楠葉花圍町15番2号 0(0720)56-8181 和歌山店 
千里中央店曼中市新千里東町卜 3 SENCHUPAL ? 番即 FO (06) 834-4141 奈良1はん館 
摂津富田店高槻市大畑町24 - 100(0726)93-7521 郡山インター店 
獲屋川店寝屋川市綍町4 - 200(0720)34-1166 熊本店 


藤井寺市岡2丁目丨番33号 S (0729)38-2111 
岸和田市 土 生町2451- 30(0724)37-1021 
神戸市中央区八幡通 3-2-160(078)231-2111 
兵庫県西宮市河原町 5 — l 〗 S (0798)7 M 171 
姫络市東延末「目1番住友生命 i 路南ヒル 1 FO (0792)22-1221 
京都市下京区寺21通仏光寺下ル恵美須之815490 (075)341-3571 
京都市下京区 M 通七条下ル東塩小路町7020 (075) 341-5769 
和歌山市元寺町4 丁目4番地 S (0734)28-1441 
奈良市三条町478- 】 S ⑴742 )27-1111 
大和郡山市横田693- 10(07435)9-2221 
熊本市手取本町4 - 120(096) 359-7800 


ぬづ☆で 

子 U 條箪⑻ た 


-パソコン/ワープロ通信ネットワークサービス- 


mu m _ part7 

9砲釀 




(ジャンプコード: PSY 101) 


年に3〜4回の大きなオフラインミーティンヴには30名近い老若男 
女が集まります。これには家族で参加する人も多く、幼児がまわり 
を走りまわつている中での宴となります。又、他の SIG と姉妹 SIG 
の提携を結び、合同でオフラインミーティンヴを開き、 SIG 間交流 
も盛んに行つています。 




<•1 



tm 


^ 一 


•が^ 


T 


T.T 



な^ 



& 





is ◄大規模ミート以外にも、機会あるごとに集まっています。 

ときには、学会の場でアカデミックなミニミートにも…… 

_ (左からキヨ□•髭•デンタ•らっば•俊 〈NifTy FPSYr こころとからだボード」〇 P〉 •ミミミ) 


人と人、心と心のつなが D を大切に! 


サイコロジストとは心理学者のこと。メンノ\一には心理学を専門と 
する人が多いけれど、ボードが専門用語一色というワケではありま 
せん。なによりも心 ( MIND ) のつながりを大切にする中年 (!?) の 
集まりです。そして、まだまだメディアとして市民権を得ていない 
パソコン通信を、新しい文明の利器として使いこなしたいと願うメ 
ンバーが多いのも特徴。ボードを使って専門書出版の打ち合わせ • 
編集作業をすすめ、「まばたきの心理学(北大路書房)」の出版にこぎ 
つけました。「书共の健康とコンピュータ」という全国規模のアンケ 
一卜調査の連絡にもボードを使用しています。全国各地の仲間と1 
つの仕事を行うのに有利なノ\°ソ通。ワーキングボードとしての意義 
に注目し、実 KE していこうと努力しています。 


r その他楽しいメ: 


-がまだまだいつぱぃ/- 


★ J & P ならではのバソコン•家電製品 
の会員割引もある ONLINE SHOPPING 。 

★ J & P だから強い"ノ X ソコン情報をはじめとする 
役に立つ DATA BASE 。 

★みんなでおしやべ0 オンライントーク ( CHAT 機能)。 
★地域別•テーマ別ボードで充実の BBS (電子掲示板)。 
★ビジュアルデータもばっちり送受價できる X - MODEM 。 


JSP HOT LINE へのご入会はスタータキットで。 

お求めは、下記のお店べ。又は現金書留に 
て、¥3,000+¥90(消費税3%) = ¥3.090を 
事務局までお送り下さい。 

すぐにスタータキットをお送りします。 
〒556大阪市浪速区日本橋西 1-6-5 上新電機株式会社 
JSP HOT LINE 事務局宛 TEL .(06)63 P -2521 



お PU わせは 


/ aiss 店店店店«店 
谷田 H 川む山沢地須 
渋町八立本富金寺大 


























SHARP 



US 8000 


s 


pi 

UPEf 


、ERSONAL WORKSTATION 


R^EXPERT^PRO 


ザ•ワークステーション。 80 M バイト (SCSItt 棟)ハードディスク ( HD 7 イグ), 
SCSI インスーフェイスを標準装填。 

SUPER 本体+キーボード+マウス•トラックボール 
CZ -604 C - TN (チタンブラック)標準価^348.000円(税別) 

HD タイプ CZ -623 C - TN (チタンブラック)標準価格498,000 PK 税別) 


NEW 



X 68000 SUPER 新発売 


アートの系违。 EXPERT II 本体+キーボード+マウス•トラックボール 
CZ -603 C . BK (ブラック) - GY (グレー)標準価格338,000円(税別)/ HD タイプ CZ .613 C . BK (ブラック)標咿価格448,00 0 PK 税別) 

ニュース7ンダード。 PROII 本体+キーボード+マウス 

CZ -653 C - BK (ブラック) .- GY (グレー)挖準価格285,00 0 IM (税別)/ HD タイブ CZ -663 C - BK (ブラック) - GY ( グレー〉標咿価格395.000円(税別) 


•ディスプレイは、別克で1; 



• お問い合わせは…シヤープ ㈱ 電子 機器事業本部システム機器営業部〒545大阪市阿倍野区長池町22番22号 15(06)621-1221 (大代表 )•鱷 w -合い 

電子 檨器事業本部液晶映像システム事業部 第 2商品企画部〒162 柬 京都新宿区市谷八幡町8番地 0(03)3260-1 161(大代表 ) ft 考丄 

14910217902560雑誌02179 -2